[Haskell-cafe] Re: [Haskell] (.) . (.)

Brian Hulley brianh at metamilk.com
Mon May 29 10:43:18 EDT 2006

[moved to cafe]
Dominic Steinitz wrote:
> Taral wrote:
>> On 5/28/06, Dominic Steinitz <dominic.steinitz at blueyonder.co.uk>
>> wrote:
>>> Is this defined in some library? Thanks, Dominic.
>> Don't think so. I use:
>> \a b -> f (g a b)
> Taral,
> Thanks. What prompted this question is that I find myself writing
> things like:
> foo = ((.).(.)) concat intersperse

Hi Dominic -
I hope it's ok for me to ask this question and I'm absolutely burning with 
curiosity to find out the answer...

How did you know to write ((.).(.)) instead of (\f g a b -> f (g a b)) ?

Although the correctness of the above translation has been proved, it seems 
extremely non-obvious to me that to compose a function with another function 
which takes two arguments you should use the compose function to compose the 
compose function with itself...

Is this kind of composition common in some branch of Lambda calculus?
Is it something that I might in time be able to see directly without having 
to go through a proof?

Does anyone else "see" the above translation intuitively and is there a way 
to imagine it?


Logic empowers us and Love gives us purpose.
Yet still phantoms restless for eras long past,
congealed in the present in unthought forms,
strive mightily unseen to destroy us.


More information about the Haskell-Cafe mailing list