[Haskell-cafe] Point-free style

Graham Klyne GK at ninebynine.org
Tue Feb 15 04:37:14 EST 2005


At 09:00 11/02/05 +0100, Ketil Malde wrote:
>Matthew Roberts <mattr at ics.mq.edu.au> writes:
>
> >> [Point-free] compositions of functions with arity greater than 1,
> >> [...] compositions of sections of composition or application,
> >> arrow notation without the sugar, and so forth---will always be more
> >> difficult to read and understand than the direct version.
>
> > I have to agree (although I suspect few others will :))
>
>I tend to agree, also.  Type signatures help, of course.  E.g. with
>the previously mentioned and rather cryptic function
>
>         (.) . (.) .(.)
>
>I entered it into GHCi, and got
>
>         :: forall a a b c a.
>               (b -> c) -> (a -> a -> a -> b) -> a -> a -> a -> c
>
>and it suddenly is much clearer what it does.

Hmm... noting the discrepancy with HUGS mentioned later in this thread, I 
entered this into GHCi and got this:
[[
Prelude> :t (.) . (.) . (.)
(.) . (.) . (.) :: forall a a1 b c a2.
                    (b -> c) -> (a -> a1 -> a2 -> b) -> a -> a1 -> a2 -> c
]]

I think you maybe dropped the digits in the type variable names?

#g


------------
Graham Klyne
For email:
http://www.ninebynine.org/#Contact



More information about the Haskell-Cafe mailing list