Haskell中的棘手因子

时间:2016-01-11 23:05:03

标签: haskell recursion factorial

是否有办法创建函数来计算Haskell中的阶乘,使用以下函数:

fix f = f (fix f)

2 个答案:

答案 0 :(得分:4)

成为原创

fac = (fix ((1:) . zipWith (*) [1..]) !!)

答案 1 :(得分:2)

是。琐碎的方式:

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

fact acc n === acc * n!。当然,这是一个完全荒谬的定义。

你能看到如何修改荒谬的定义,以便它使用f参数吗?希望这将模仿您已经编写的明确递归定义的结构。