是否有办法创建函数来计算Haskell中的阶乘,使用以下函数:
fix f = f (fix f)
答案 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
参数吗?希望这将模仿您已经编写的明确递归定义的结构。