[Haskell-cafe] Something that kind of resembles OO
Michael Mossey
mpm at alumni.caltech.edu
Fri Jul 9 07:21:06 EDT 2010
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))
Will give a runtime error.
More information about the Haskell-Cafe
mailing list