めもめも
不動点演算子がControl.Monad.Fixにあった
うりゃ
import Control.Monad.Fix
main = do print $ map (fix $ \f x -> if x == 0 then 1 else x * f (x - 1)) [0..]
http://d.hatena.ne.jp/uskz/20080716/p5
へー。ちょっと自分でも書いてみよんよん。
Prelude Control.Monad.Fix> fix( \f n -> if n<=0 then [] else n:f(n-1) ) 5
[5,4,3,2,1]