You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
45 lines
1.1 KiB
45 lines
1.1 KiB
(define (A x y) |
|
(cond ((= y 0) 0) |
|
((= x 0) (* 2 y)) |
|
((= y 1) 2) |
|
(else (A (- x 1) (A x (- y 1)))))) |
|
|
|
(A 1 10) |
|
|
|
;; -> (A 0 (A 1 9)) |
|
;; -> (A 0 (A 0 (A 1 8)) |
|
;; -> (A 0 (A 0 (A 0 (A 1 7)))) |
|
;; -> (A 0 (A 0 (A 0 (A 0 (A 1 6))))) |
|
;; -> (A 0 (A 0 (A 0 (A 0 (A 0 (A 1 5)))))) |
|
;; -> (A 0 (A 0 (A 0 (A 0 (A 0 (A 0 (A 1 4))))))) |
|
;; -> (A 0 (A 0 (A 0 (A 0 (A 0 (A 0 (A 0 (A 1 3)))))))) |
|
;; -> (A 0 (A 0 (A 0 (A 0 (A 0 (A 0 (A 0 (A 0 (A 1 2))))))))) |
|
;; -> (A 0 (A 0 (A 0 (A 0 (A 0 (A 0 (A 0 (A 0 (A 0 (A 1 1)))))))))) |
|
;; -> (A 0 (A 0 (A 0 (A 0 (A 0 (A 0 (A 0 (A 0 (A 0 2))))))))) |
|
;; -> (A 0 (A 0 (A 0 (A 0 (A 0 (A 0 (A 0 (A 0 4)))))))) |
|
;; -> (A 0 (A 0 (A 0 (A 0 (A 0 (A 0 (A 0 8))))))) |
|
;; -> (A 0 (A 0 (A 0 (A 0 (A 0 (A 0 16)))))) |
|
;; -> (A 0 (A 0 (A 0 (A 0 (A 0 32))))) |
|
;; -> (A 0 (A 0 (A 0 (A 0 64)))) |
|
;; -> (A 0 (A 0 (A 0 128))) |
|
;; -> (A 0 (A 0 256)) |
|
;; -> (A 0 512) |
|
;; => 1024 |
|
|
|
(A 2 4) |
|
|
|
;; => 65536 |
|
;; I'm not going to bother evaluating these by hand anymore. |
|
|
|
(A 3 3) |
|
|
|
;; => 65536 |
|
|
|
(define (f n) (A 0 n)) |
|
;; 2n |
|
(define (g n) (A 1 n)) |
|
;; 2^n |
|
(define (h n) (A 2 n)) |
|
;; 2^2^(n-1 times) |
|
(define (k n) (* 5 n n)) |
|
;; 5n^2
|
|
|