Erlang面向Agent编程的利器:eXAT(4)

四、案例研究
以下介绍几个主体的例子,以及如何在eXAT中实现。
(1)消息模式匹配
这是第一个例子,主体等待特定消息的到来,然后做些事情。具体地,从主体“Alice”发来LISP写的“inform”消息,我们就令主体“Bob”开始action行动。
-module (agent_bob).
-export ([action/3, start/0]).
action ([inform, alice, Receiver, Ontology, lisp, Content, Slots], State, Agent) ->
    % ’inform’ from Alice ... do the action
start () ->
    agent:new (bob, receiver, {agent_bob, action}).
这段代码展示了主体Bob的eXAT实现:
函数start/0调用agent:new/4启动主体Bob。参数意思是:bob:主体名字,receiver:作为行为骨架的FSM模板的名字,agent_bob:实现FSM模板规定行为的函数名字。这里的receiver是eXAT内建的,它只有一个状态,收到消息后它引发行动并返回状态。
消息的模式匹配,通过Erlang的匹配机制实现。消息采用ACL格式:
[ Performative-name, Sender, Receiver,Ontology, Language, Content, Slots ]
上面的那段代码中,函数action的第一个参数,就是以列表表示的消息模式。
再来看

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值