|
|
1
2
正如已经得到的回答,你的解决办法是使用lists:any/2. 考虑到您需要它的并发版本:
注意,当“wait \u for \u children”进程退出(have \u result)时,所有子进程(“run”进程)都将死亡。 完全未经测试。。。啊,见鬼。我举个例子:
可能仍然有bug(可能也有)。 |
|
|
2
4
基本上有两种不同的方法。或者编写自己的函数,遍历返回的列表
第二种方法是使用一个已经定义的函数来执行实际的迭代,直到列表元素上的测试为真,并为其提供测试。
会做同样的事。你选哪一个取决于你自己。第二种可能更接近于设计模式,但我觉得即使你使用它,你也应该对它的内部工作方式有一个想法。在这种情况下,它是微不足道的,非常接近显式的情况。 这是一件非常常见的事情,但我不知道它是否会被归类为一种设计模式。它看起来如此基本,从某种意义上说是“琐碎的”,以至于我不敢称之为设计模式。 |
|
|
3
3
我已经有一段时间没有做任何erlang了,所以我不会尝试向您提供语法,但是erlang和OTP有解决方案等着您。
将每个进程链接到函数进程,并让函数进程在返回第一个结果后终止。 让erlang/otp来清理其余的进程。 |
|
|
4
0
|
|
|
mritalian · Erlang ETS内存碎片 7 年前 |
|
|
david · Erlang:从主机名获取ip地址 7 年前 |
|
|
Matt · 有没有办法访问GenServer的状态? 7 年前 |
|
|
Chris W · 具有并行HTTP请求的Erlang网络问题 7 年前 |