diff options
| author | Steve Lee <me@xiangyangli.com> | 2016-10-25 01:46:39 +0800 |
|---|---|---|
| committer | Steve Lee <me@xiangyangli.com> | 2016-10-25 01:46:39 +0800 |
| commit | 527c65ca2e4ec5095171345502dfa38a18e97a7f (patch) | |
| tree | 4b7bf522071fa60aef1eda3cc3fa81c62bfd0643 /SICP/ex2-4.scm | |
| parent | 9f3c370ed0af17c0b603847143ca9fbdf25536e7 (diff) | |
| download | Personal-527c65ca2e4ec5095171345502dfa38a18e97a7f.tar.xz Personal-527c65ca2e4ec5095171345502dfa38a18e97a7f.zip | |
add SICP exercise solutions
Diffstat (limited to 'SICP/ex2-4.scm')
| -rw-r--r-- | SICP/ex2-4.scm | 10 |
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) + + |
