Discussion Section: Examples

add n x = n+x

double x = x+x

first (a,b) = a
second (a,b) = b

module Fact where
fact :: Integer -> Integer
fact n = product [1..n]

comb n r = fact n `div` (fact r * fact (n-r))

member a [] = False
member a (x:xs) = x==a || member a xs

reverse_list [] = []
reverse_list (x:xs) = reverse xs ++ [x]

merge (x:xs) [] = (x:xs)
merge [] (x:xs) = (x:xs)
merge (x:xs) (y:ys) = if ( x < y) 
			then x : (merge xs (y:ys))
			else y : (merge (x:xs) ys)

quicksort[]	= []
quicksort (p:xs) = quicksort [ x | x <- xs, x <= p ]
		   ++ [ p ] ++
		   quicksort [ x | x <- xs, x > p ]

pyth n = [ (a,b,c) | a <- [1..n],
		     b <- [1..n],
		     c <- [1..n],
		     a^2 + b^2 == c^2 ]

quadsolve a b c | delta < 0  = error "complex roots"
		| delta == 0 = [-b/(2*a)]
		| delta > 0  = [-b/(2*a) + radix/(2*a), 
				-b/(2*a) - radix/(2*a)]
		where 
			delta = b*b - 4*a*c
			radix = sqrt delta

Last modified: Sat Jan 27 10:46:48 PST 2001