RosettaCodeData/Task/Permutations-Derangements/Haskell/permutations-derangements-4.hs
2025-02-27 18:35:13 -05:00

8 lines
207 B
Haskell

derangements :: [Integer]
derangements = map numerator
(expseq (invexp/(1:(-1):repeat 0)))
invexp :: [Rational]
invexp = zipWith (%) (cycle [1,-1]) factorials
where
factorials = scanl (*) 1 [1..]