Skip to content

Instantly share code, notes, and snippets.

@dpk
Created October 28, 2012 18:11
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save dpk/3969332 to your computer and use it in GitHub Desktop.
Save dpk/3969332 to your computer and use it in GitHub Desktop.
Klop's fixed-point combinator. Needs a lazy-evaluated Scheme.
(define L (lambda (a) (lambda (b) (lambda (c) (lambda (d) (lambda (e) (lambda (f) (lambda (g) (lambda (h) (lambda (i) (lambda (j) (lambda (k) (lambda (l) (lambda (m) (lambda (n) (lambda (o) (lambda (q) (lambda (p) (lambda (s) (lambda (t) (lambda (u) (lambda (v) (lambda (w) (lambda (x) (lambda (y) (lambda (z) (lambda (r) (r ((((((((((((((((((((((((((t h) i) s) i) s) a) f) i) x) e) d) p) o) i) n) t) c) o) m) b) i) n) a) t) o) r)))))))))))))))))))))))))))))
(define Yk (((((((((((((((((((((((((L L) L) L) L) L) L) L) L) L) L) L) L) L) L) L) L) L) L) L) L) L) L) L) L) L))
(define (factorial c)
(lambda (n)
(if (= n 0)
1
(* n (c (- n 1))))))
;; ((Yk factorial) 5) ;=> 120
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment