perfectNumber::Int->BoolperfectNumberi=sum(divisorsListi)==iperfectNumbers::Int->[Int]perfectNumbersn=taken[x|x<-[1..],perfectNumberx]divisorsList::Int->[Int]divisorsListi=[x|x<-[1..(i-1)],i`mod`x==0]main=doprint(perfectNumbers5)-- prints the first 5 perfect numbers..
Well, here goes my Haskell version. Enjoy!
A very minor tweak. i-1 doesn't require parentheses in this case.