[Haskell-beginners] cps in yaht

Brent Yorgey byorgey at seas.upenn.edu
Sun Jul 14 00:58:42 CEST 2013


On Sat, Jul 13, 2013 at 05:47:45PM +0800, Deng Wu wrote:
> 
> It makes sense to me, so I change the definition of cps to something like
> this:
> 
> cfold f z [] = z
> cfold f z (x:xs) = (\y -> cfold f y xs) (f x z)

Note that if we just reduce the application of (\y -> ...) to (f x z), we get

  cfold f z (x:xs) = cfold f (f x z) xs

But that is just the usual definition of foldl.  So it certainly works
fine but it is not in CPS.

-Brent



More information about the Beginners mailing list