gpt4 book ai didi

方案 - 从参数顺序运行两个过程?

转载 作者:行者123 更新时间:2023-12-05 00:32:54 29 4
gpt4 key购买 nike

我正在尝试创建一个函数,该函数将两个函数作为参数并执行它们。

我尝试使用 cond ,但它只执行 action1 .

(define seq-action
(lambda (action1 action2)
(cond
((procedure? action1) (action1))
((procedure? action2) (action2)))))

我觉得一个接一个运行应该不会太难。他们不需要同时运行。

我只是尝试过 (action1) (action2)并排,但它只返回 action2 .这是我为 action1 定义的内容和 action2 :
(define ax 
(lambda ()
(+ 1 2)))
(define bx
(lambda ()
(+ 5 2)))

最佳答案

一个接一个地执行一个过程就像这样简单:

(define seq-action
(lambda (action1 action2)
(action1)
(action2)))

但是,上面只会返回最后一个过程的结果。如果您需要两个结果,则返回一个包含值的列表,如下所示:
(define seq-action
(lambda (action1 action2)
(list (action1) (action2))))

或者,您可以使用 values 同时返回多个值。程序:
(define seq-action
(lambda (action1 action2)
(values (action1) (action2))))

要在调用最后一个版本后检索这两个值,您需要使用 let-values .

关于方案 - 从参数顺序运行两个过程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12739223/

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