--- /dev/null
+#lang racket
+
+(define Y (lambda (f)
+ ((lambda (g)
+ (g g))
+ (lambda (h)
+ (lambda (x)
+ ((f (h h)) x))))))
+
+;; factorial
+((Y (lambda (fct)
+ (lambda (n)
+ (if (= n 1)
+ 1
+ (* n (fct (- n 1)))))))
+ 10)
+
+;; fibonacci
+((Y (lambda (fib)
+ (lambda (n)
+ (cond
+ ((= n 0) 0)
+ ((= n 1) 1)
+ (else (+ (fib (- n 1))
+ (fib (- n 2))))))))
+ 10)
+
+;; b
+(define (f x)
+ ((lambda (even? odd?)
+ (even? even? odd? x))
+ (lambda (ev? od? n)
+ (if (= n 0) true (od? ev? od? (- n 1))))
+ (lambda (ev? od? n)
+ (if (= n 0) false (ev? ev? od? (- n 1))))))
+
+(eq? (f 3) #f)
+(eq? (f 4) #t)
\ No newline at end of file