Erlang foreach给出错误:前面的语法错误:';)';
我正在做一个并行的sodukusolver,但是现在程序给了我一个错误。我正在尝试并行生成进程来测试不同的可能解决方案。下面是部分代码Erlang foreach给出错误:前面的语法错误:';)';,erlang,Erlang,我正在做一个并行的sodukusolver,但是现在程序给了我一个错误。我正在尝试并行生成进程来测试不同的可能解决方案。下面是部分代码 par_solve_refined(M) -> case solved(M) of true -> M; false -> %% split into chunks to control granularity Chunks = partition(2, guesses(M)),
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.
请试试这个:
lists:foreach(fun(I) -> spawn(fun() -> Parent ! solve_one(I) end) end, Chunks)
列表:foreach(函数,列表)可能是您需要的函数。对“给我一个错误”的描述不正确。请指定打印错误的内容和位置。我想您需要在上一行的
结束后加上“.”。在生成后加上括号(
未关闭。@Netch很好,谢谢,但这还不是全部…第一个乐趣
也将以相应的结束
关闭。有什么问题吗?我运行此代码,一切正常。我现在看到是调用解决一个不起作用的问题。谢谢。你能与我共享你的代码吗?我想了解suku,我是nk你的想法很好,使用了大量的过程来检查每个结果。给我你的电子邮件,我给你一份代码副本。我不能在互联网上分享它,因为我精炼了别人的顺序代码。这是一个学校分配。