【发布时间】:2014-06-08 10:05:30
【问题描述】:
我正在做一个并行的 sodukusolver,但现在程序给了我一个错误。我试图并行生成测试不同可能解决方案的进程。部分代码如下。
par_solve_refined(M) ->
case solved(M) of
true ->
M;
false ->
%% split into chunks to control granularity
Chunks = partition(2, guesses(M)),
Parent = self(),
%% here below the program gives an error: "syntax error before: ')'"
foreach(fun(I) -> spawn(fun() -> Parent ! solve_one(I) end) end, Chunks),
receive
Solution -> Solution
end
end.
partition(_, []) ->
[];
partition(N, L) ->
try case lists:split(N, L) of
{Fst, Snd} -> [Fst|partition(N, Snd)]
end
catch
error:badarg -> [L]
end.
【问题讨论】:
-
“给我一个错误”不是正确的描述。请指定打印的错误和位置。
-
我认为你需要一个 '.'在上一行的
end之后。 -
spawn(之后的括号似乎没有关闭。 -
@Netch 好的,谢谢,但这还不是全部......
-
第一个
fun也应该用对应的end关闭。
标签: erlang