我正在做一个并行的数独求解器,但是现在程序给了我一个错误。我试图并行生成流程,测试不同的可能解决方案。部分代码如下。
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.
答案 0 :(得分:0)
请试试这个:
lists:foreach(fun(I) -> spawn(fun() -> Parent ! solve_one(I) end) end, Chunks)
答案 1 :(得分:0)
列出:foreach(函数,列表)可能是您需要的函数。