我在Scheme中尝试使用apply
,但是我似乎还缺少什么东西:
(apply apply '(+ (1 2 3)))
我理解,第一个应用程序应该执行以下操作:
(apply + '(1 2 3))
第二个应该做的事情是:
(+ 1 2 3)
但是Ypsilon和Gauche都会产生大约相同的错误(这是Ypsilon的错误信息):
error: attempt call non-procedure: (+ 1 2 3)
backtrace:
0 (apply apply '(+ (1 2 3)))
..."/dev/stdin" line 1
我没有理解到什么?