-- comment -- :set +t -- types everything fibs = 0:1:zipWith (+) fibs (tail fibs) fact n = product [1..n] comb n r = fact n `div` (fact r * fact (n-r)) data Time = MakeTime { hours, mins, secs :: Int } -- Page 595 Sebesta sumAll :: [Integer] -> Integer sumAll [] = 0 sumAll (a:x) = a + sumAll x productAll :: [Integer] -> Integer productAll [] = 1 productAll (a:x) = a * productAll x colors = [ "blue", "green", "red", "yellow" ] factors :: Integer -> [Integer] factors n = [ i | i <- [1..n `div` 2], n `mod` i == 0] sort :: [Integer] -> [Integer] sort [] = [] sort (a:x) = sort [b | b <- x, b <= a] ++ [a] ++ sort [ b | b <- x, b > a] positives = [ 1 .. ] evens = [ 2 , 4 .. ] squares = [n*n | n <- [0..]] --ordered list of integers member :: [Integer] -> Integer -> Bool member [] n = False member (m:x) n = ((m < n) && (member x n)) || (m == n) || False -- translate problem 11 on p. 603 y s [] = [] y s (t:x) | (s==t) = (s:x) | otherwise = y s x --Greatest Common Divisor mygcd m n | (n > m) = mygcd n m -- so m>=n | ((m `mod` n) == 0) = n | otherwise = mygcd n (m `mod` n) cubes = [ n*n*n | n <- [1..] ]