7

python中的延续是否有任何等效的构造。我一直在阅读有关延续的内容,我只是好奇并想知道,因为文档中对此一无所知。

4

1 回答 1

0

我的问题更多的是python是否支持延续,那么它们如何表达?

它们在 Python 中的表达方式与在没有call/cc的任何其他语言中相同:通过将函数作为延续参数传递给另一个函数。考虑一个非常愚蠢的例子,即应用于两个数字之和的延续。在 ML 中,你可以写

fun plus(x, y, k) = k(x + y)

plus(2, 4, print o Int.toString)

打印 6。

但在 Python 中你可能会写

def plus(x, y, k):
    return k(x + y)

plus(2, 4, lambda n: print '%d' % n)

它也打印 6。

于 2012-04-27T22:43:37.650 回答