pyths :: Int->[(Int,Int,Int)] pyths n = [(x,y,z)|x<-[1..n],y<-[1..n],z<-[1..n],x^2+y^2==z^2] perfects :: Int->[Int] perfects n = [x | x<-[1..n], (sum [y| y<-[1..x `div` 2], x `mod` y==0])==x] scalar :: [Int]->[Int]->Int scalar xs ys = sum [x*y|(x,y)<-(zip xs ys)] quick :: [Int]->[Int] quick [] = [] quick (x:xs) = (quick [y|y<-xs,y<=x]) ++ [x] ++ (quick [y|y<-xs, y>x]) and1 :: [Bool]->Bool and1 [] = True and1 (True:xs) = and1 xs and1 (False:xs) = False