我是 Scheme 的新手,必须编写两个列表的著名“合并功能”。虽然我了解该算法,但我一遍又一遍地收到此错误:
**merge((list 1 2 3) (list 4 5 6))**
<procedure:merge>
. . application: not a procedure;
expected a procedure that can be applied to arguments
given: (1 2 3) arguments...:(4 5 6)
我认为我的代码是错误的,所以我一直在调试它。改变一个虚拟函数,看看它是否仍然会做出同样的反应。它做了。
#lang scheme
(define (merge list1 list2)
(cond ((null? list1)list2)
((null? list2)list1)
(else
"Nothing more to do!"
)
)
)
语法检查结果没有“错误”。我也阅读了类似问题的答案,但我无法弄清楚。剩下的唯一选择是我在不理解原因的情况下进行了错误的函数调用。
期待您的反馈意见..