[erlang-questions] Bound(?) var in anonymous fun
Manuel A. Rubio "Bombadil"
bombadil@REDACTED
Tue Dec 18 12:08:33 CET 2012
Hi Pablo,
El 2012-12-18 11:54, Pablo Vieytes escribió:
> I guessed Key was bound so I could use for pattern matching. It's
> very easy to fix it but I don't know why it doesn't work.
This doesn't works well because the params are not inside of binding in
closures. The params are the interface with the outside world and will
be confuse know if a param is a binding or not. By default Erlang hasn't
binding in function params.
> Fixed version:
>
> delete_key_from_list(Key, StatusList)->
> lists:foldr(
> fun(K, Acc) when K == Key ->
> Acc;
> (Another, Acc) ->
> [Another|Acc]
> end,
> [],
> StatusList).
This code could be writted as:
delete_key_from_list(Key, StatusList)->
lists:filter(fun(X) -> Key =/= X end, StatusList).
Regards,
Manuel Rubio.
More information about the erlang-questions
mailing list