Hilco,

On 22/06/2012, at 2:54 PM, Hilco Wijbenga wrote:

> I'm going through the excellent http://learnyouahaskell.com tutorial.
> So far it's been pretty easy to follow but now I ran into something
> that (when I later started reading about maps) do not seem to fully
> grasp.
> 
> I think I'm close to understanding why (++ "!") "bla" returns "bla!
> instead of "!bla" but I seem to be missing the last step. :-) I
> noticed that ((++) "!") "bla" does indeed return "!bla". So it seems
> to be related to the infix property of ++? The types of (++) "!",
> ((++) "!"), and (++ "!") are all the same so that doesn't tell me
> much.

This stuff is in a beginner's tutorial? (!?)

This is purely a syntactic issue. These things are called "sections".

It might be more obvious if we put in some lambda abstractions, which I hope 
your tutorial has already introduced:

(++ "!") = (\x. x ++ "!")
("!" ++) = (\y. "!" ++ y)

Yes, it is related to the infix property of ++. You can get similar things 
going with arbitrary binary (two argument) functions like so:

app = (++) -- or whatever

(`app` "!") = (\x. x `app` "!") = (\x. app x "!")
(and the other way around)

cheers
peter

-- 
http://peteg.org/


_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to