Scheme中的feeding函数作为参数
Feeding functions as parameters in Scheme
我是 Scheme 编程的新手,正在处理一项作业。我有多个函数,func3
位于顶部,func1
馈送到 func2
,然后馈送到 func3
。例如我有这样的东西
(define func1
(lambda (a b)
(+ a b)))
(define func2
(lambda (x y)
(+ x y))) ;;; y is a function of above function1
我创建了 func3
如下
(define func3
(lambda (a b x)
func2 (x (func1 (a b)))))
有什么地方我做错了还是很简单?让我知道是否需要任何说明。在此先感谢您的帮助。
你调用过程的方式不对,它应该是这样的:
(define func3
(lambda (a b x)
(func2 x (func1 a b))))
如您所见,代码中的某些括号放错了位置。关键是要了解如何调用一个过程,例如这是错误的:
func2(x ...) ; missing `(` at the left
这也是不正确的:
(func1 (a b)) ; don't surround parameters with `()`
正确的方法是用 ()
包围每个过程调用而不是它的参数,除非它们本身就是过程调用。像这样:
(func1 a b)
(func2 x (func1 a b))
我是 Scheme 编程的新手,正在处理一项作业。我有多个函数,func3
位于顶部,func1
馈送到 func2
,然后馈送到 func3
。例如我有这样的东西
(define func1
(lambda (a b)
(+ a b)))
(define func2
(lambda (x y)
(+ x y))) ;;; y is a function of above function1
我创建了 func3
如下
(define func3
(lambda (a b x)
func2 (x (func1 (a b)))))
有什么地方我做错了还是很简单?让我知道是否需要任何说明。在此先感谢您的帮助。
你调用过程的方式不对,它应该是这样的:
(define func3
(lambda (a b x)
(func2 x (func1 a b))))
如您所见,代码中的某些括号放错了位置。关键是要了解如何调用一个过程,例如这是错误的:
func2(x ...) ; missing `(` at the left
这也是不正确的:
(func1 (a b)) ; don't surround parameters with `()`
正确的方法是用 ()
包围每个过程调用而不是它的参数,除非它们本身就是过程调用。像这样:
(func1 a b)
(func2 x (func1 a b))