Erlang foreach给出错误:语法错误:')'

时间:2014-04-23 13:56:23

标签: erlang

我正在做一个并行的数独求解器,但是现在程序给了我一个错误。我试图并行生成流程,测试不同的可能解决方案。部分代码如下。

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.

2 个答案:

答案 0 :(得分:0)

请试试这个:

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

答案 1 :(得分:0)

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