Skip to content

Instantly share code, notes, and snippets.

@Idorobots
Created July 21, 2015 14:24
Show Gist options
  • Save Idorobots/f9d62dcce92632e356b9 to your computer and use it in GitHub Desktop.
Save Idorobots/f9d62dcce92632e356b9 to your computer and use it in GitHub Desktop.
I just lost my abbility to even...
;; Code:
'(letrec ((even? (lambda (x) (if (= 0 x) 't (odd? (- x 1)))))
(odd? (lambda (x) (if (= 0 x) 'n (even? (- x 1))))))
(even? 7))
;; Compiled code:
'(let ((__evenQUEST '()) (__oddQUEST '()))
(do (set!
__evenQUEST
(lambda (__x __cont1)
(__EQUAL
0
__x
(lambda (__value4)
(let ((__cont2
(lambda (__value3) (&yield-cont __cont1 __value3))))
(if __value4
(&yield-cont __cont2 't)
(___
__x
1
(lambda (__value6)
(__oddQUEST
__value6
(lambda (__value5)
(&yield-cont __cont2 __value5)))))))))))
(set!
__oddQUEST
(lambda (__x __cont7)
(__EQUAL
0
__x
(lambda (__value10)
(let ((__cont8
(lambda (__value9) (&yield-cont __cont7 __value9))))
(if __value10
(&yield-cont __cont8 'n)
(___
__x
1
(lambda (__value12)
(__evenQUEST
__value12
(lambda (__value11)
(&yield-cont __cont8 __value11)))))))))))
(__evenQUEST 7 (lambda (__value13) __value13)))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment