エラトステネスの篩の前に, 階乗をArrowでやります. 理由はおいおい分かります. 階乗を普通に fact n = if n == 0 then 1 else n * fact (n - 1) main = print $ fact 10 3628800 流石にこれはいいですね. はい. Arrowに急ぐ前に, まずfixを使って書きましょう. 色々考えましたが, fixを介してArrowに行くのが一番近道です. fix f = f (fix f) fact = fix fact' fact' f n = if n == 0 then 1 else n * f (n - 1) main = print $ fact 10 3628800 さっきのfactを, 第一引数で関数を回すようにしてやるだけですね. 階乗をArrowLoopで さて, fixで書けたらもうお手の物です. というのも