The basic mechanism for computing on any datastructure in Haskell is recursion.
Recursion always has a base case and an induction case.
For lists, the base case is the empty list
the induction case is adding an element to the list
For list operations, it is usually easier
to use higher-order functions
map (performing an operation on every element of a list)
foldr (reducing a list to a single value).
Sometimes these functions are referred to as list combinators.
© University of Glasgow