Мне нужно выйти из фолдла. Вот фиктивный пример того, как выйти из складки, когда я подсчитываю сумму значений в списке и встречаю слишком большое значение (например, 10)
L = [1,2,3,4,10,5,6,7],
Res =
try
lists:foldl(
fun(I, Value) ->
if (I < 10) ->
Value + I;
true ->
throw({too_big_value, Value})
end
end,
0, L)
catch
throw:{too_big_value, Value} -> Value
end,
Res.
Я знаю, что этот пример является искусственным, но есть ли какой-нибудь хороший способ разорвать складку (я знаю эта складка всегда сканирует всю структуру)?
Обратите внимание, что мне нужно получить правильные данные, даже если я сломаюсь. В этом случае я должен получить данные из предыдущей итерации (как это было сделано в моем примере).