aboutsummaryrefslogtreecommitdiff
path: root/SICP/ex2-4.scm
diff options
context:
space:
mode:
authorSteve Lee <me@xiangyangli.com>2016-10-25 01:46:39 +0800
committerSteve Lee <me@xiangyangli.com>2016-10-25 01:46:39 +0800
commit527c65ca2e4ec5095171345502dfa38a18e97a7f (patch)
tree4b7bf522071fa60aef1eda3cc3fa81c62bfd0643 /SICP/ex2-4.scm
parent9f3c370ed0af17c0b603847143ca9fbdf25536e7 (diff)
downloadPersonal-527c65ca2e4ec5095171345502dfa38a18e97a7f.tar.xz
Personal-527c65ca2e4ec5095171345502dfa38a18e97a7f.zip
add SICP exercise solutions
Diffstat (limited to 'SICP/ex2-4.scm')
-rw-r--r--SICP/ex2-4.scm10
1 files changed, 10 insertions, 0 deletions
diff --git a/SICP/ex2-4.scm b/SICP/ex2-4.scm
index 9078d99..3ad6d15 100644
--- a/SICP/ex2-4.scm
+++ b/SICP/ex2-4.scm
@@ -49,9 +49,17 @@
;Exercise 2.6
(define zero (lambda (f) (lambda (x) x)))
+
(define (add-1 n)
(lambda (f) (lambda (x) (f ((n f) x)))))
+;; (add-1 zero)
+;; (lambda (f) (lambda (x) (f ((zero f) x))))
+;; (lambda (f) (lambda (x) (f (f x))))
+(define (add a b)
+ (lambda (f)
+ (lambda (x)
+ ((a f) ((b f) x)))))
(define one (lambda(f) (lambda (x) (f x))))
(define two (lambda(f) (lambda (x) (f (f x)))))
(define three (lambda(f) (lambda (x) (f (f (f x))))))
@@ -74,3 +82,5 @@
((three square) 2)
(((add two one) square) 2)
+
+