continuations

    41热度

    2回答

    我一直在小Schemer学习计划和使用PLT计划为我的环境。 小Schemer递归帮助我(这对我来说现在很简单),但我被卡在介绍“收藏家”的书的一部分,并将整个函数作为一个延续。 以下是他们使用的示例代码。我理解递归元素,但我被困住了,特别是在lambda函数上 - 我的思想不能遵循路径以及如何设置lambda函数的参数(因为它们的唯一调用是在递归中再次调用它们,在功能体内没有具体的使用)。 如果

    5热度

    2回答

    是否有可能实现McCarthy's amb-operator用于C#中的非确定性选择? 显然.NET缺乏持续的支持,但yield return可能是有用的。这会在其他静态.NET语言如F#中实现吗?

    5热度

    2回答

    由于an article in IBM Developer Works about CPS (continuation passing style),我试图不使用“返回”。 没有CPS function getter() { * calculate a* return a; } function test() { *part 1* if(*conditi

    1热度

    2回答

    是否可以在这里添加另一个函数procC,以便评估的顺序是procA-> procB-> procC-> procA ...? (define (procA another-fun) (let loop ((n 5)) (display "In Proc A \n") (set! another-fun (call/cc another-fun)) (when

    5热度

    1回答

    我很惊讶PLTScheme中的“错误”功能。 如果我有一个零除,它不会做任何其他递归,只是出来的调用堆栈,并给我一个错误。 在所有函数之前是否存在隐式延续?错误是否会抛出调用堆栈?有人对此有任何想法吗?

    1热度

    1回答

    这里是单声道Continuations'continuation_store(...)。从看一下下面的代码,它看起来好像商店()遵循以下两个分支: cont->saved_stack && num_bytes <= cont->stack_alloc_size 使用内存直接 其他 GC释放使用内存,并创建一些新的内存。 然而,奇怪的是,如果我重复使用continuation_store(),内存使

    8热度

    2回答

    在流程和CPS转换的背景下,我有一个小麻烦决定哪些行政redexes(lambda表达式)到底是: 所有拉姆达了由CPS转换介绍表情 only通过CPS转换引入的lambda表达式,但如果您通过“手动”或通过更智能的CPS转换器进行转换,则不会写入 如果可能的话,一个很好的参考将是受欢迎的。

    7热度

    4回答

    这与What is call/cc?有关,但我不想为了自己的目的劫持这个问题,并且像setjmp/longjmp的类比这样的一些参数可以回避我。 我想我对继续是什么有足够的想法,我认为它是当前调用堆栈的快照。我不想讨论为什么这可能会很有趣,或者你可以用延续来做什么。我的问题更具体地说,为什么我必须提供一个函数参数来调用/ cc?为什么不叫/ cc只是返回当前的延续,所以我可以随心所欲地做任何事情(

    27热度

    7回答

    我这里盛产希基说某处阅读: “我想延续可能是在理论上整齐 ,但在实践中没有” 我不熟悉使用Clojure。 1. clojure是否有延续? 2.如果不是,你不需要延续?我已经看到了很多很好的例子,特别是从this guy。什么是替代方案? 3.如果是,是否有文档?

    2热度

    2回答

    我正在寻找一个描述Web服务器中的“延续”机制与编程语言的答案。 我的理解是,使用continuations,让pi的“数字”生产者与“pi的数字”消费者进行通信而无需显式线程是微不足道的。 我听说过有关Jetty延续的很好的事情。我很好奇别人的想法。 我可能已经找到了我的答案,但无论如何我都会问这个问题 - 备案。