[erlang-questions] Bound(?) var in anonymous fun

Max Bourinov bourinov@REDACTED
Tue Dec 18 12:34:36 CET 2012


Or even more shooter:

lists:delete(Key, StatusList).


On Tue, Dec 18, 2012 at 3:22 PM, Dmitry Klionsky <dm.klionsky@REDACTED>wrote:

> 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<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
>
>
> ______________________________**_________________
> erlang-questions mailing list
> erlang-questions@REDACTED
> http://erlang.org/mailman/**listinfo/erlang-questions<http://erlang.org/mailman/listinfo/erlang-questions>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20121218/180d5955/attachment.htm>


More information about the erlang-questions mailing list