From 34fef03ba8ddcc9bdb2e07e402beddc6c715da5e Mon Sep 17 00:00:00 2001 From: "Elf M. Sternberg" Date: Tue, 28 Apr 2015 08:51:34 -0700 Subject: [PATCH] Caught a silly typo; now sufficient to support classic factorials with recursions. --- chap1.rkt | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/chap1.rkt b/chap1.rkt index 5b0c323..f83041b 100644 --- a/chap1.rkt +++ b/chap1.rkt @@ -77,6 +77,8 @@ (defprimitive car car 1) (defprimitive set-cdr! set-mcdr! 2) (defprimitive + + 2) +(defprimitive - - 2) +(defprimitive * * 2) (defpredicate lt < 2) (defpredicate eq? eq? 2) @@ -135,7 +137,7 @@ ; silly patch because of the mutatable lists (define-syntax mcaar (syntax-rules () ((_ e) (mcar (mcar e))))) -(define-syntax mcadr (syntax-rules () ((_ e) (mcdr (mcar e))))) +(define-syntax mcdar (syntax-rules () ((_ e) (mcdr (mcar e))))) ; Iterate through the environment, find an ID, return its associated ; value. @@ -186,3 +188,5 @@ (begin (display result) (toplevel)) #f))) (toplevel)) + +; (set! fact (lambda (x) (if (eq? x 0) 1 (* x (fact (- x 1))))))