我想创建一个函数,它将两个函数作为参数并执行它们。Scheme - 依次从参数运行两个过程?
我试过使用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)))
在你的第一个代码中,你也可以使用'(begin(action1)(action2))',因为它可以在任何地方使用。 – ReyCharles
@ReyCharles'begin'在过程中是隐含的,不需要明确写出 –
我意识到这一点。我建议它出于教学原因。我相信首先要说明一般情况,然后是lambda情况下的“语法糖”。 :-) – ReyCharles