Paste number 30792: Try "cddr" instead of "caddr"!

Paste number 30792: Try "cddr" instead of "caddr"!
Pasted by: Wolfbone
When:3 years, 8 months ago
Share:Tweet this! | http://paste.lisp.org/+NRC
Channel:None
Paste contents:
Raw Source | XML | Display As
(define (calculate expr)
  (cond ;; self-evaluating object?
        ((number? expr)
         expr)
        ;; 1 number in a list?
        ((= (length expr)
            1)
         (car expr))
        ;; compound expression?
        (else
         (math-eval-combo expr))))    
 
(define (math-eval-combo expr)
  (let ((operator-name (cadr expr))
        (arg1 (calculate (car expr)))
        (arg2 (calculate (caddr expr)))) ; <--- Here!
     (cond ((eq? operator-name '+)
            (+ arg1 arg2))
           ((eq? operator-name '-)
            (- arg1 arg2))
           ((eq? operator-name '*)
            (* arg1 arg2))
           ((eq? operator-name '/)
            (/ arg1 arg2))
           (else
            (error "Invalid operation in expr:" expr)))))

This paste has no annotations.

Colorize as:
Show Line Numbers

Lisppaste pastes can be made by anyone at any time. Imagine a fearsomely comprehensive disclaimer of liability. Now fear, comprehensively.