[Haskell-cafe] Something that kind of resembles OO

Ivan Lazar Miljenovic ivan.miljenovic at gmail.com
Fri Jul 9 07:36:11 EDT 2010


Michael Mossey <mpm at alumni.caltech.edu> writes:

> I notice in algebraic data defined with named fields, you can use the
> same name inside different constructors and then apply it to any data
> of that type.
>
> data Vehicle = Car { ident :: String, wheel :: Circle }
>              | Plane { ident :: String, stick :: Line }
>
> f :: [Vehicle] -> [String]
> f = map ident
>
> This is a little like fields in a base class.
>
> I also see that a wrong use of accessor functions will compile but
> give a runtime error:
>
> test = wheel (Plane "foo" (Line 1))

Well, it type-checks...

-- 
Ivan Lazar Miljenovic
Ivan.Miljenovic at gmail.com
IvanMiljenovic.wordpress.com


More information about the Haskell-Cafe mailing list