2010/8/31 michael rice <[email protected]>
>
> So it's a type constructor, not a type? Could you please provide a simple 
> example of its usage?

Sure, although I'm sure you've come by some already.

-- the identity function
id :: a -> a
-- often, we write it like this:
-- id x = x
-- but here we see the relationship between the ananymous function
syntax and the function type:
id = \x -> x

In fact, if you write in prefix form, it is quite familiar:
f :: (->) Int Bool
e = Either String Float

Cheers,
Thu

> Michael
>
> --- On Tue, 8/31/10, Vo Minh Thu <[email protected]> wrote:
>
> From: Vo Minh Thu <[email protected]>
> Subject: Re: [Haskell-cafe] On to applicative
> To: "michael rice" <[email protected]>
> Cc: [email protected]
> Date: Tuesday, August 31, 2010, 1:17 PM
>
> 2010/8/31 michael rice <[email protected]>
> >
> > "Learn You a Haskell ..."  says that (->) is a type just like Either. Where 
> > can I find its type definition?
>
> You can't define it *in* Haskell as user code. It is a built-in infix
> type constructor (Either or Maybe are type constructors too, not just
> types). In fact, if you want to implement a simple, typed functional
> language, you'll find it is the only built-in type constructor you
> have to implement (as the implementor of the language).
>
> Also,
>   Show a => a
> is a type too, but you won't find a definition for 'a' or for '=>'.
> All those things are defined by the language.
>
> Cheers,
> Thu
>
_______________________________________________
Haskell-Cafe mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to