小编use*_*016的帖子

计划延续假人

对于我的生活,我无法理解延续.我认为这个问题源于我不明白它们的用途.我在书籍或网上找到的所有例子都非常简单.他们让我想知道,为什么有人甚至想要延续?

这是一个典型的不切实际的例子,来自TSPL,我认为这是一本非常公认的关于这个主题的书.在英语中,他们将继续描述为计算结果的"做什么".好的,这是可以理解的.

然后,第二个例子给出:

(call/cc
  (lambda (k)
    (* 5 (k 4)))) => 4 
Run Code Online (Sandbox Code Playgroud)

这有什么用?k甚至没有定义!当(k 4)无法计算时,如何评估此代码?更何况,如何call/cc知道撕掉4最内层表达式的参数并返回它?会发生什么事(* 5 ..?如果这个最外层的表达式被丢弃,为什么要写呢?

然后,陈述的"较少"的简单示例是如何使用call/cc来提供递归的非本地退出.这听起来像流控制指令,即break/return在命令式语言中,而不是计算.

通过这些动议的目的是什么?如果有人需要计算结果,为什么不只是存储它并在以后根据需要调用.

lisp scheme continuations

27
推荐指数
3
解决办法
5412
查看次数

标签 统计

continuations ×1

lisp ×1

scheme ×1