

(2 intermediate revisions by one other user not shown) 
Line 1: 
Line 1: 
−  In Haskell, lists are what Arrays are in most other languages. Haskell has all of the general list manipulation functions, see also <hask>Data.List</hask>.
 +  [[Category:Pages to be removed]] 
−   
−  <haskell>
 
−  head [1,2,3] > 1
 
−  tail [1,2,3] > [2,3]
 
−  length [1,2,3] > 3
 
−  init [1,2,3] > [1,2]
 
−  last [1,2,3] > 3
 
−  </haskell>
 
−   
−  Furthermore, Haskell supports some neat concepts.
 
−   
−  =Infinite lists=
 
−  <haskell>
 
−  Prelude> [1..]
 
−  </haskell>
 
−   
−  The list of all squares:
 
−  <haskell>
 
−  square x = x*x
 
−  squares = map square [1..]
 
−  </haskell>
 
−   
−  But in the end, you probably don't want to use infinite lists, but make them finite. You can do this with <hask>take</hask>:
 
−   
−  <haskell>
 
−  Prelude> take 10 squares
 
−  [1,4,9,16,25,36,49,64,81,100]
 
−  </haskell>
 
−   
−  =List comprehensions=
 
−   
−  The list of all squares can also be written in a more comprehensive way, using list comprehensions:
 
−   
−  <haskell>
 
−  squares = [x*x  x < [1..]]
 
−  </haskell>
 
−   
−  List comprehensions allow for constraints as well:
 
−   
−  <haskell>
 
−   multiples of 3 or 5
 
−  mults = [ x  x < [1..], mod x 3 == 0  mod x 5 == 0 ]
 
−  </haskell>
 