import Data.List import Data.Ratio -- von Blatt 2 übernommen chse :: Integer -> Integer -> Integer n `chse` k = product [n-k+1..n] `div` product [1..k] -- based on https://de.wikipedia.org/wiki/Stirling-Zahl#Stirling-Zahlen_zweiter_Art bernoulli :: Integer -> Rational bernoulli 0 = 1 bernoulli n = sum [(sum[((-1)^j) * (k `chse` j) * (j^n) | j <- [1..k]]) % (k+1) | k <- [0..n]]