import System.Environment
fac 0 = 1
fac n = n * fac (n-1)
-- list comprehensions
-- 2 lists
nouns = [ "hobo", "frog", "pope"]
adjectives = [ "lazy", "grouchy", "scheming"]
listComprehensions2lists = [adjective ++ " " ++ noun | adjective <- adjectives, noun <- nouns]
-- length function
length' xs = sum [1 | _ <- xs]
-- remove lowercase letters
justUpper xs = [ c | c <- xs, c `elem` ['A'..'Z']]
-- I can do nested list comprehensions
-- just put what you want to do with the nested list inside the function part
-- then put outside from where you are drawing the nested lists...
-- remember you can span the comprehensions across multiple lines for it to be cleaner...
-- so please do that :)
main = print (justUpper "hOLaCacAAAA")
Comments