我的问题更多的是如果Python支持延续那么它们如何表达?
它们在 Python 中的表达方式与任何其他没有call/cc 的语言相同:通过将一个函数作为延续参数传递给另一个函数。考虑一个非常愚蠢的例子,将延续应用于两个数字的和。在 ML 中,你可能会写
fun plus(x, y, k) = k(x + y)
plus(2, 4, print o Int.toString)
Run Code Online (Sandbox Code Playgroud)
打印 6。
但在Python中你可能会写
def plus(x, y, k):
return k(x + y)
plus(2, 4, lambda n: print '%d' % n)
Run Code Online (Sandbox Code Playgroud)
它还打印 6。