Просто любопытно, какой смысл использовать foldl
здесь?Если вам нужно прорваться, используйте рекурсию, foldl
не предназначена для нее.
main([]) ->
L = [1,2,3,4,5,10,6,7],
io:format("[~w]", [s(L, 0)]).
s([], S) ->
S;
s([H|T], S) ->
if (H < 10) ->
s(T, S + H);
true ->
S
end.
Обновление:
Другой вариант - использовать takewhile
:
lists:foldl(fun(E, A) -> A + E end, 0, lists:takewhile(fun(E) -> E < 10 end, L))