Scheme符​​号:继续传递样式示例

时间:2014-03-27 20:18:17

标签: syntax scheme continuation-passing

Wikipedia article about CPS中,有以下代码段,表面上来自Scheme:

(define (pyth& x y k)
 (*& x x (lambda (x2)
          (*& y y (lambda (y2)
                   (+& x2 y2 (lambda (x2py2)
                              (sqrt& x2py2 k))))))))

我找不到任何其他示例,或对" pyth&"," *&"和" +&&#的使用的解释34 ;.很多谷歌搜索只出现了其他形式,如" =&"和" /&"。

1 个答案:

答案 0 :(得分:2)

这些只是功能名称,pyth&是CPS pythagoras程序,*&是CPS乘法程序,+&是CPS添加程序,与通常不同对等因为它们在最后一个参数中得到了延续,最后的&只是一个命名约定,提醒你这一点,在链接段落的开头说明:

  

在CPS中,每个过程都需要一个额外的参数来表示函数计算结果应该做什么