On 2003-12-10T11:46:38-0500, Felix Klock's ll1 list proxy wrote:
> Example: define the type Answer to be a *product* of [Maybe Double] and
> [Maybe Bool] (product, not sum; in other words, use records, not
> unions). [Maybe X] is the tagged sum of (Just X) and Nothing.
Let me just note that the Haskell type class system gives you an
infinite, type-directed family of read functions. If you know how to
read a Double, you also know how to read a [Double] (i.e., a Double
list), and [[Double]], and so on. And you can custom-define a data type
like
data SuperList a = SuperList a (SuperList [a])
whose reading potentially involves all of this infinite family of
list-reading functions. This infinity distinguishes Haskell type
classes from, say, C++ templates.
--
Edit this signature at http://www.digitas.harvard.edu/cgi-bin/ken/sig
International Human Rights Day * 2003-12-10 * http://www.un.org/rights/
What if All Chemists Went on Strike? (science fiction)
http://www.iupac.org/publications/ci/2003/2506/iw3_letters.html
Attachment:
signature.asc
Description: Digital signature