map_search_pred(Map,Pred) where is_map(Map)-> map_search_pred(maps:to_list(Map), Pred);
map_search_pred([H|Tail], Pred) ->
case Pred(H) of
true -> H;
false -> map_search_pred(Tail, Pred)
end;
map_search_pred([], Pred) -> {error, Pred}.
我之前的语法错误是"其中"第7行,即此代码中的第1行。我不知道为什么会抛出这个但是我仍然是erlang的初学者所以我可能在途中错过了一些东西。
答案 0 :(得分:1)
以关键字when
而不是where
,
Name(Pattern11,...,Pattern1N) [when GuardSeq1] ->
Body1;
...;
Name(PatternK1,...,PatternKN) [when GuardSeqK] ->
BodyK.
where
应由代码
when
替换
map_search_pred(Map,Pred) when is_map(Map)-> map_search_pred(maps:to_list(Map), Pred);
map_search_pred([H|Tail], Pred) ->
case Pred(H) of
true -> H;
false -> map_search_pred(Tail, Pred)
end;
map_search_pred([], Pred) -> {error, Pred}.