-8

次の関数を使用して、Haskell で階乗を計算する関数を作成する方法はありますか。

fix f = f (fix f)
4

2 に答える 2

4

オリジナルであること

fac = (fix ((1:) . zipWith (*) [1..]) !!)
于 2016-01-12T04:21:47.690 に答える
2

はい。些細な方法:

factorial = fix go 1 where
  go f acc n = fact acc n

どこでfact acc n === acc * n!。もちろん、これはまったくばかげた定義です。

fパラメータを使用するようにばかげた定義を変更する方法がわかりますか? これは、うまくいけば、すでに書いた明示的な再帰的定義の構造を模倣します。

于 2016-01-12T01:04:11.820 に答える