[Haskell-beginners] Understandig types
Jared Hance
jaredhance at gmail.com
Sun Jul 3 19:39:14 CEST 2011
On Sat, Jul 02, 2011 at 12:00:44PM -0700, Michael Xavier wrote:
> From: Michael Xavier <nemesisdesign at gmail.com>
> To: moowoo9 at fastmail.fm
> Cc: beginners at haskell.org
> Date: Sat, 2 Jul 2011 12:00:44 -0700
> Subject: Re: [Haskell-beginners] Understandig types
>
> I do agree you should look at the tutorial but to answer your questions, see
> below:
>
> 1) what's the difference between these two code statements? I'm
> > convinced they should be the same
> >
> > type T = [Char]
> > type CurrentValue = Char
> >
> >
> You could think of the type keyword as aliasing an existing type to one that
> you name. For instance, T can now be used interchangeably with the [Char]
> type, like in a type declaration:
>
> upcase :: [Char] -> [Char]
> can be:
> upcase :: T -> T
>
> and they would mean the same thing. You do this usually for the sake of
> documentation, where the alias you are creating is more readable than that
> which it aliases.
>
> [Char] means an array of Chars. String, for example is I believe defined as:
> type String = [Char]
No. [Char] is a list, not array, of Char. That is, something like
data List a = Cons a (List a) | Empty
>
>
> > 2) What is Maybe String?
> >
> >
> Maybe String is a datatype that could be 1 of 2 things, a String or Nothing.
> Maybe is used a lot of the time for computations that may fail, such as
> looking for a needle in a haystack:
To elaborate: It is
data Maybe a = Just a | Nothing
in ADT form.
More information about the Beginners
mailing list