関数型プログラミング言語Haskell Part22
■ このスレッドは過去ログ倉庫に格納されています
0272デフォルトの名無しさん
2013/04/29(月) 07:47:17.94>再帰を表現するために ArrowLoop クラスがあるそうなのですが、
再帰というより、ループのある回路を実現する
モナドでいうMonadFixみたいなもの
>例えば階乗を計算する Int -> Int 型の関数を loop 関数を使って作るとしたら、
それは例題がおかしい。やろうとしてることがArrowと関係ない
一応、関数アローを無理矢理使って書けなくもないけど
fac :: Int -> Integer
fac n = loop f n
where
f (k, g) = (g k, \x -> if x <= 0 then 1 else fromIntegral x * g (x-1))
■ このスレッドは過去ログ倉庫に格納されています