Return Styles: Pseud0ch, Terminal, Valhalla, NES, Geocities, Blue Moon. Entire thread

DERP

Name: HERP 2010-07-22 20:53

(define (A x y)
(cond ((= y 0) 0)
((= x 0) (* 2 y))
((= y 1) 2)
(else (A (- x 1)
(A x (- y 1))))))

I understand everything up until the else.
HALP.

Name: Anonymous 2010-07-22 21:06

>>2
Read about the COND form.
Here's I'll show you an expansion of a COND form, so you'd understand how it works:


(cond ((= y 0) 0)
        ((= x 0) (* 2 y))
        ((= y 1) 2)
        (t (A (- x 1)
              (A x (- y 1)))))
=>

(if (= y 0)
    (begin 0)
    (cond ((= x 0) (* 2 y)) ((= y 1) 2) (t (a (- x 1) (a x (- y 1))))))

=>

(if (= y 0)
    (begin 0)
    (if (= x 0)
        (begin (* 2 y))
        (cond ((= y 1) 2) (t (a (- x 1) (a x (- y 1)))))))

=>

(if (= y 0)
    (begin 0)
    (if (= x 0)
        (begin (* 2 y))
        (if (= y 1)
            (begin 2)
            (cond (t (a (- x 1) (a x (- y 1))))))))

=>

(if (= y 0)
    (begin 0)
    (if (= x 0)
        (begin (* 2 y))
        (if (= y 1)
            (begin 2)
            (begin (a (- x 1) (a x (- y 1)))))))

(cond
  (test1 result1)
  ...)

=>

(if test1
    (begin result1)
    (cond ...))

Newer Posts
Don't change these.
Name: Email:
Entire Thread Thread List