этот ответ, вероятно, не самый лучший с точки зрения эффективности (я не сравнивал его с другими решениями), но он, безусловно, помогает понять, как можно изобрести свои собственные итераторы для разных коллекций в erlang, направленных вместо этого на достижение конкретной цели.использования предопределенных итераторов
fr(<<>>, Output) -> Output;
fr(<<"b", Rest/binary>>, Output) ->
fr(Rest, <<Output, "b">>);
fr(<<C:8, Rest/binary>>, Output) ->
fr(Rest, <<Output/binary, $<, C:8, $>>>).
f(Input) -> fr(Input, <<>>).
PS похоже, что это решение на самом деле наиболее эффективно:)