[erlang-questions] Bound(?) var in anonymous fun
Dmitry Klionsky
dm.klionsky@REDACTED
Tue Dec 18 12:22:07 CET 2012
On 12/18/2012 02:08 PM, Manuel A. Rubio "Bombadil" wrote:
> 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.
> _______________________________________________
> erlang-questions mailing list
> erlang-questions@REDACTED
> http://erlang.org/mailman/listinfo/erlang-questions
Or even more readable as:
delete_key_from_list(Key, StatusList)->
[Status || Status <- StatusList, Status =/= Key].
--
Best regards,
Dmitry Klionsky
More information about the erlang-questions
mailing list