gpt4 book ai didi

scheme - 实现返回函数

转载 作者:行者123 更新时间:2023-12-03 23:15:26 26 4
gpt4 key购买 nike

我正在尝试实现 return Scheme R6RS 中的函数。我想要这样的东西:

(lambda ()
(do-some-job-before)
(return some-value)
(do-some-job-after))

执行 (do-some-job-before) , 不执行 (do-some-job-after)以及 some-value 中 lambda 函数的最终值.

我想我必须使用延续。我试过:
(define return #f)
(call/cc (lambda (k)
(set! return k)))

但它不起作用;例如
(+ 2 (return 3)) ; -> 3 (and not 5 as I expected)

我怎样才能做到这一点?

最佳答案

已编辑:误读问题。

事实上很容易:)

(call/cc 
(lambda (return)
(printf "before\n")
(return 3)
(printf "after\n")))

示例 here .

注:你不能概括这一点,除非你用不卫生的宏的语法包装它。

关于scheme - 实现返回函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12036259/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com