出于好奇和渴望加深我对CPS风格(continuation passing style)的理解,我想知道是否有一种方法可以根据这个方案重写这个函数。困难可能在于延续的设计,通常一个延续只需要一个参数,但在这种情况下应该需要两个参数,对吧? 下面是我想要练习的函数: long int ack(int m, int n) if (!
这本书给出了一个cps折叠,如下:cfold’ f z (x:xs) = f x z (\y -> cfold’ f y xs)CPS> cfold(+) 0 [1,2,3,4]CPS> cfold (:) [] [1,2,3]但是,当我尝试测试它时,我发现有一个问题,ghci给出了: In the expression: cfold (+) 0 []
In an e