[theory] 有谁对CPS比较熟的?

tonywinslow1986 2007-09-02
有谁对CPS比较熟的?帮忙介绍一下吧,我看yaht看晕了。
Thank you!
Lich_Ray 2007-09-05
实在是没时间解释。大概说一句:普通的函数式编程风格是基于推理的,或者基于数据在新环境的更新的;CPS是一种基于操作(函数)在新环境中的更新的编程风格,前景见 http://wfp.group.iteye.com/group/topic/2521
Lich_Ray 2007-09-18
再回一点吧。
1. 不可能看晕的。YAHT 上的 CPS 只是讲了风格,没讲原理或应用。只要知道它是用最后一个参数保存更新操作的函数的风格就行。试着把那个额外函数带入几步就知道了。
2. 关于应用:
Scheme 等语言中的 call/cc。这种运用需要所有的函数都有最后一个参数 cont(当然,是隐式的),这样就相对于可以取到所有函数的保护栈帧;只要 cont 在作用域内,爱弹哪个弹哪个。
纯函数式语言的 IO。所有的纯函数式语言都使用延续IO。Haskell 的 IO Monad 其实就是延续(不使用 do 的时候就知道了)。方法是始终用一个 cont 跟踪 IO 的过程,逼迫用户把 IO 写成一个链,消解 IO 副作用对程序流程产生的副作用(主要表现为时间上的不确定性)。
总的说来,自己写程序一般用不到 CPS 本身(FP 纯恶搞的Style多呢,CPS 还算正常的),知道其衍生物就差不多了。
Global site tag (gtag.js) - Google Analytics