blob: 84491042b6a7118d2d231c4fa42a407e83b82407 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
#lang racket
(define zero (lambda (f) (lambda (x) x)))
(define (add-1 n) (lambda (f) (lambda (x) (f ((n f) x)))))
(define one (lambda (f) (lambda (x) (f x))))
(define two (lambda (f) (lambda (x) (f (f x)))))
(define (add-church f g)
(lambda (h) (lambda (x) ((g h) ((f h) x)))))
(define (print)
(println (((add-1 zero) inc) 1))
(println ((one inc) 1))
(newline)
(println (((add-1 (add-1 zero)) inc) 1))
(println ((two inc) 1))
(newline)
(println (((add-church one two) inc) 1)))
(print)
|