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

letrec

Name: Anonymous 2011-12-23 12:06

Isn't
(letrec ([is-even? (lambda (n)
                    (or (zero? n)
                        (is-odd? (sub1 n))))]
         [is-odd? (lambda (n)
                   (and (not (zero? n))
                        (is-even? (sub1 n))))])
        (is-odd? 11))


equivalent to...

(let
    ([is-even? nil]
     [is-odd? nil])
    (set! is-even? (lambda (n)
                    (or (zero? n)
                        (is-odd? (sub1 n)))))
    (set! is-odd? (lambda (n)
                   (and (not (zero? n))
                        (is-even? (sub1 n)))))
    (is-odd? 11))

Name: Anonymous 2011-12-24 1:17

Thank you again, >>12,14.  You are awesome.  Would you mind answering my initial question, that of why

(letrec
    [(x-1 expr-1)
     (x-2 expr-2)
       :  :
     (x-n expr-n)]
    body...)


is not equivalent to...

(let
    [(x-1 nil)
     (x-2 nil)
       :   :
     (x-n nil)]
    (set! x-1 expr-1)
    (set! x-2 expr-2)
       :   :      :
    (set! x-n expr-n)
    body...)

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