Skip to content

Instantly share code, notes, and snippets.

@crowl
Created December 15, 2015 18:43
Show Gist options
  • Save crowl/f0705d3ed50df4c2e4a9 to your computer and use it in GitHub Desktop.
Save crowl/f0705d3ed50df4c2e4a9 to your computer and use it in GitHub Desktop.
;;; P10 - Evaluación Matemática
(define mateval
(lambda (expr)
(cond
((number? expr) expr)
(else
(cond
((eqv? 'ADD (car expr)) (+
(mateval (cadr expr))
(mateval (caddr expr))))
((eqv? 'SUB (car expr)) (-
(mateval (cadr expr))
(mateval (caddr expr))))
((eqv? 'MUL (car expr)) (*
(mateval (cadr expr))
(mateval (caddr expr))))
((eqv? 'DIV (car expr)) (/
(mateval (cadr expr))
(mateval (caddr expr))))
((eqv? 'MOD (car expr)) (remainder
(mateval (cadr expr))
(mateval (caddr expr)))))))))
;;; Prueba
(print (mateval '(ADD 3 (MUL 2 5))))
(print (mateval '(MOD 10 (MUL (DIV 8 4) (SUB 5 3)))))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment