Я хочу написать процедуру с именем twoOperatorCalculator, которая будет вычислять операции сложения и вычитания левого ассоциативного инфикса.Операции представлены в виде списка, и результат должен быть результатом этих операций.Ниже приведен пример вывода для этой процедуры:
1 ]=> (twoOperatorCalculator '(1 + 15 − 32/5 + −2))'<br/>
Value : 38/5<br/>
Я так старался, но не смог найти свою ошибку.Ошибка как
1 ]=> (twooperatorcalculator '(1+2-3+2))'
;The object (1+2-3+2) is not applicable.
МОЙ КОД
(define twooperatorcalculator
(lambda (exp) (
(cond
((null? exp) 0)
((null? (cdr (cdr exp))) (car exp))
((eq? #\+ (cadr exp)) (+ (car (exp)) twooperatorcalculator (cdr (cdr exp))))
((eq? #\- (cadr exp)) (- (car (exp)) twooperatorcalculator (cdr (cdr exp))))))))