3rd CCSC Northwest Conference Fall 2001 |
Basic Haskell: data types and classes | Lists as defined data types
As mentioned above, lists are pre-defined in Haskell; but they behave exactly as if defined as a recursive algebraic data type
data List a = Nil | Cons a (List a)
[1,2,3] == 1 : (2 : (3 : [])) == Cons 1 (Cons 2 (Cons 3 Nil))
(note that the constructors Nil and Cons are spelled differently in actual Haskell code) |
3rd CCSC Northwest Conference Fall 2001 |
Basic Haskell: data types and classes | Lists as defined data types
|
| The role of data constructors
Data constructors such as Nil and Cons for lists are applied like functions, but they are really only "place-holders" which build larger structures from smaller ones |
3rd CCSC Northwest Conference Fall 2001 |
Basic Haskell: data types and classes
3rd CCSC Northwest Conference Fall 2001 |
Basic Haskell: data types and classes
3rd CCSC Northwest Conference Fall 2001 |
Basic Haskell: data types and classes
3rd CCSC Northwest Conference Fall 2001 |
Basic Haskell: data types and classes