[Haskell-beginners] Re: how to define records containing finite length lists.

Christian Maeder Christian.Maeder at dfki.de
Wed Dec 2 13:43:36 EST 2009

Srikanth K schrieb:
> Hi,
>    I want to define a record say "Student".  The 'C' equvivalent for the
> same could be
> struct Person {
>      char name[10]
>      int age }
> The closest I can find for doing such a thing in haskell appears to be
> data Person = Person{
>      name :: [char]
>      age :: Int
> }

you would use:

  data Person = Person
    { name :: String
    , age :: Int }

Note the "," and the capital first letter for types.

> I have not yet been able to find a suitable way to specify the
> constraint on the length of list(name in this case).
> So can someone let me know how we can impose this length constratint on
> the list  and derive a new type.
> If standard haskell doesn't give this flexibility, are there any
> extensions in ghc to achieve the same. 

The flexibility lies in not fixing the maximal size!

HTH Christian

More information about the Beginners mailing list