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

Max Bourinov <>
Tue Dec 18 13:25:20 CET 2012


You are right!!!

But it should work according to the specification:

Pablo wrote: "I want to delete *an item* from a list and I've written this
fun."

So, it must be only one item :-)

Best regards,
Max




On Tue, Dec 18, 2012 at 3:36 PM, Loïc Hoguin <> wrote:

> This one only removes the first element. :)
>
>
> On 12/18/2012 12:34 PM, Max Bourinov wrote:
>
>> Or even more shooter:
>>
>> lists:delete(Key, StatusList).
>>
>>
>> On Tue, Dec 18, 2012 at 3:22 PM, Dmitry Klionsky <
>> <mailto:>**> 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
>>          <mailto:erlang-questions@**erlang.org<>
>> >
>>         http://erlang.org/mailman/__**listinfo/erlang-questions<http://erlang.org/mailman/__listinfo/erlang-questions>
>>
>>         <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
>>      <mailto:erlang-questions@**erlang.org<>
>> >
>>     http://erlang.org/mailman/__**listinfo/erlang-questions<http://erlang.org/mailman/__listinfo/erlang-questions>
>>     <http://erlang.org/mailman/**listinfo/erlang-questions<http://erlang.org/mailman/listinfo/erlang-questions>
>> >
>>
>>
>>
>>
>>
>> ______________________________**_________________
>> erlang-questions mailing list
>> 
>> http://erlang.org/mailman/**listinfo/erlang-questions<http://erlang.org/mailman/listinfo/erlang-questions>
>>
>>
>
> --
> Loďc Hoguin
> Erlang Cowboy
> Nine Nines
> http://ninenines.eu
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20121218/de619206/attachment.html>


More information about the erlang-questions mailing list