我正在尝试解释关键字和整数列表以获取表达式。如果“输入”是,比如 '(add 5 5),传入的列表将包含 3 个 -> add 5 5
(define (evaluate input)
(if (integer? input)
input
(cond ((integer? (car input))
(car input))
((equal? (car input) "add")
(+ (evaluate (cdr input))
(evaluate (cddr input))))
~more~
我使用 'if' 因为 cond 不喜欢只返回一个值。我的问题是:是否相等?实际上正确比较字符串,在这种情况下 (+ evaluate (...) evaluate(...)) 应该返回 10 吗?