[Haskell-beginners] Equivalence (or not) of lists
Chris Sasarak
csasarak at mailbox.org
Mon Nov 14 02:58:27 UTC 2016
In this case it's not too bad adding parens to make:
length' (1:2:3:[])
But in the future sometimes it can get harder, so we have a handy
function '$' which is just function application, but it has the lowest
precedence. What this means is everything on its right side is evaluated
and then applied to the function on its left. Your code would look like
this:
length' $ 1:2:3:[]
In some cases this can be more readable.
Best,
Chris
Francesco Ariis writes:
> On Sat, Nov 12, 2016 at 08:20:19PM +0000, Lawrence Wickert wrote:
>> Hello all,
>>
>> I am a rank beginner to functional languages. Working through
>> Lipovaca's book, up to Chapter 3.
>>
>> [...]
>>
>> *Main> length' 1:2:3:[]
>
> Hello Lawrence,
> remember that function application has precedence over operators!
>
> So writing:
>
> *Main> length' 1:2:3:[]
>
> is equivalent to writing
>
> *Main> (length' 1) :2:3:[]
>
> (which is not what you want). If you add parentheses, your expression
> works again!
>
> *Main> length' (1:2:3:[])
> _______________________________________________
> Beginners mailing list
> Beginners at haskell.org
> http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners
More information about the Beginners
mailing list