Erlang foreach给出错误:前面的语法错误:';)';

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)),

我正在做一个并行的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.
请试试这个:

lists:foreach(fun(I) -> spawn(fun() -> Parent ! solve_one(I) end) end, Chunks)

列表:foreach(函数,列表)可能是您需要的函数。

对“给我一个错误”的描述不正确。请指定打印错误的内容和位置。我想您需要在上一行的
结束后加上“.”。在
生成后加上括号(
未关闭。@Netch很好,谢谢,但这还不是全部…第一个
乐趣
也将以相应的
结束
关闭。有什么问题吗?我运行此代码,一切正常。我现在看到是调用解决一个不起作用的问题。谢谢。你能与我共享你的代码吗?我想了解suku,我是nk你的想法很好,使用了大量的过程来检查每个结果。给我你的电子邮件,我给你一份代码副本。我不能在互联网上分享它,因为我精炼了别人的顺序代码。这是一个学校分配。