{- Binomial coefficient and Pascal's triangle example, by Travis Veralrud CSE 341, Autumn 2008 -} -- function for calculating n! (n factorial) factorial:: Integer -> Integer factorial 0 = 1 factorial n = n * factorial (n-1) -- returns a list of coefficients for function (1+x)^n, given n binoms:: Integer -> [Integer] binoms n = [ (factorial n) `div` (factorial k * factorial (n-k)) | k <- [0..n] ] -- an infinite list containing the rows of Pascal's triangle. pascals_triangle = map binoms [0..]