【发布时间】:2011-05-27 13:22:24
【问题描述】:
我一直在尝试学习 Erlang,偶然发现了一些由 Joe Armstrong 编写的代码:
start() ->
F = fun interact/2,
spawn(fun() -> start(F, 0) end).
interact(Browser, State) ->
receive
{browser, Browser, Str} ->
Str1 = lists:reverse(Str),
Browser ! {send, "out ! " ++ Str1},
interact(Browser, State);
after 100 ->
Browser ! {send, "clock ! tick " ++ integer_to_list(State)},
interact(Browser, State+1)
end.
来自一篇关于在 Erlang 中使用 websockets 的博文:http://armstrongonsoftware.blogspot.com/2009/12/comet-is-dead-long-live-websockets.html
有人可以向我解释一下为什么在 start 函数中,他会生成匿名函数 start(F, 0),而 start 是一个接受零参数的函数。我对他在这里想要做什么感到困惑。
【问题讨论】:
标签: erlang