import Data.List import Data.Ratio bernoulli 0 = 1 bernoulli n | n`mod`2 > 0 && n > 1 = 0%1 bernoulli n | n>0 = subber n (n-1) where subber a (-1) = 0 subber a b = a `choos` b % (b-n-1)* bernoulli b + subber a (b-1) n `choos` k = product [n-k+1..n] `div` product [1..k]