[Haskell-beginners] anonymous arguments
Twan van Laarhoven
twanvl at gmail.com
Sun Dec 29 13:24:13 UTC 2013
On 2013-12-29 13:47, harry wrote:
> Tony Morris <tmorris <at> tmorris.net> writes:
>>
>>
>> (`foo` 3)
>> Scala is very limited when it comes to this point free code.
>>
>> On 29/12/2013 10:17 PM, "harry" <voldermort <at> hotmail.com> wrote:
>>
>> Is there any reason not to include Scala-like anonymous arguments in
>> Haskell? For example, I would like to write
>> map (\x -> foo x 3)
>> as
>> map (foo _ 3)
>> The named argument in this and similar cases adds nothing but visual and
>> namespace clutter.
>
> How about a slightly more complex example?
>
> map (\x -> foo 4 'f' (bar x) 5 'j')
>
> There comes a point where point-free notation becomes unreadable.
If you write
map (foo 4 'f' (bar _) 5 'j')
How would the compiler know whether you meant
map (\x -> foo 4 'f' (bar x) 5 'j')
or
map (foo 4 'f' (\x -> bar x) 5 'j')
?
Lambda's make it explicit where the variable is bound, which is a good thing, IMO.
Twan
More information about the Beginners
mailing list