4
我试图使用Erlang/ets通过模式匹配接收到的数据来存储/更新各种信息。下面是代码无法在接收块中使用Erlang/ets
start() ->
S = ets:new(test,[]),
register(proc,spawn(fun() -> receive_data(S) end)).
receive_data(S) ->
receive
{see,A} -> ets:insert(S,{cycle,A}) ;
[[f,c],Fcd,Fca,_,_] -> ets:insert(S,{flag_c,Fcd,Fca});
[[b],Bd,Ba,_,_] -> ets:insert(S,{ball,Bd,Ba})
end,
receive_data(S).
这里A为周期数,[F,C]为中心的标志,并[b]是球和FCD,FCA,BD,巴从播放机的方向和标志的角度和球。
发送方进程正在发送这些信息。这里,模式匹配工作正常我通过打印A,Fcd,Fca等等的值来检查。我相信使用Erlang/ets有问题。
当我运行这段代码,我得到错误这样
Error in process <0.48.0> with exit value: {badarg,[{ets,insert,[16400,{cycle,7}]},{single,receive_data,1}]
可有人告诉我有什么不对的代码,以及如何解决这个问题?
如何使erlang函数公开? – Megha 2014-11-07 11:27:54