Skip to content

Instantly share code, notes, and snippets.

@dpk
Created October 28, 2012 18:11
Show Gist options
  • 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