Here are some Haskell code chunks, which both are simple recursion algorithms.
Quicksort is a sort of poster child for Haskell because everyone does it to showcase how elegant Haskell is.
quicksort :: (Ord a) => [a] -> [a] quicksort  =  quicksort (x:xs) = let smallerSorted = quicksort [a | a <- xs, a <= x] biggerSoted = quicksort [a | a <- xs, a > x] in smallerSorted ++ [x] ++ biggerSoted
maximum' :: (Ord a) => [a] -> a maximum'  = error "List is empty!" maximum' [x] = x maximum' (x:xs) = (max x (maximum' xs)) replicate' :: Int -> b -> [b] replicate' n x | n <= 0 =  | otherwise = (x:(replicate' (n-1) x)) take' :: Int -> [a] -> [a] take' n (x:xs) | n <= 0 =  | otherwise = x:(take' (n-1) xs) reserve' :: [a] -> [a] reserve'  =  reserve' (x:xs) = (reserve' xs) ++ [x]