-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 回答