我正在编写一个计划程序,最终对操作员列表进行评估。计划程序不评估嵌套列表吗?
实施例:(评价“(1 2 +)) - > 3
我具有的功能为基本运营商合作(+, - ,*,/),但问题进来时,我有一个嵌套名单。
实施例:(评价“(1(2 3 +)*)) - >(无)
我缺少的条件?
(define (evaluate lis)
(cond
((not (list? lis))
lis)
((list? lis)
(if (equal? (length lis) 3)
(cond
((equal? (cddr lis) '(+))
(+ (car lis) (car (cdr lis))))
((equal? (cddr lis) '(-))
(- (car lis) (car (cdr lis))))
((equal? (cddr lis) '(*))
(* (car lis) (car (cdr lis))))
((equal? (cddr lis) '(/))
(/ (car lis) (car (cdr lis)))))))))
哦,我现在看到了问题。我由于某种原因认为我的发言彻底解决了。我完全忘了递归调用该函数。我对Scheme很陌生,所以看看列表如何在这里工作很有趣。谢谢! – Disc0nnect