#!/usr/bin/runghc module Recursion08SumCount where sumRec :: (Num a) => [a] -> a sumRec [] = 0 sumRec (x : xs) = x + sumRec xs sumFld :: (Num a) => [a] -> a sumFld xs = foldr (+) 0 xs cntRec :: (Num a) => [a] -> a cntRec [] = 0 cntRec (_ : xs) = 1 + cntRec xs main :: IO () main = do print (sum [1 .. 10]) print (sumRec [1 .. 10]) print (sumFld [1 .. 10]) print (length [1 .. 10]) print (cntRec [1 .. 10])