aboutsummaryrefslogtreecommitdiff
path: root/r/racket/lambda-core.rkt
diff options
context:
space:
mode:
authorKyle Serrecchia2025-01-30 19:28:06 -0800
committerKyle Serrecchia2025-01-30 19:28:06 -0800
commit043d4cf37e0085dbb31d73b4156f5561fd2b3160 (patch)
tree99e3c7a5f653c749333cec194fc95276f29d59a2 /r/racket/lambda-core.rkt
parent9f86e33013615d6f1af60056efeaf2aa2479acc0 (diff)
restructured folders
Diffstat (limited to 'r/racket/lambda-core.rkt')
-rw-r--r--r/racket/lambda-core.rkt96
1 files changed, 0 insertions, 96 deletions
diff --git a/r/racket/lambda-core.rkt b/r/racket/lambda-core.rkt
deleted file mode 100644
index c9f695f..0000000
--- a/r/racket/lambda-core.rkt
+++ /dev/null
@@ -1,96 +0,0 @@
-#lang racket
-
-; LOGIC
-(define _true
- (lambda (x)
- (lambda (y) x)))
-
-(define _false
- (lambda (x)
- (lambda (y) y)))
-
-(define _not
- (lambda (b)
- ((b _false) _true)))
-
-(define _and
- (lambda (b1)
- (lambda (b2)
- ((b1 b2) _false))))
-
-(define _or
- (lambda (b1)
- (lambda (b2)
- ((b1 _true) b2))))
-
-
-; CHURCH NUMERALS
-(define _zero
- (lambda (f)
- (lambda (x) x)))
-
-(define _succ
- (lambda (n)
- (lambda (f)
- (lambda (x)
- (f ((n f) x))))))
-
-(define _pred
- (lambda (n)
- (lambda (f)
- (lambda (x)
- (((n (lambda (g)
- (lambda (h) (h (g f)))))
- (lambda (u) x))
- (lambda (a) a))))))
-
-(define _one (_succ _zero))
-
-
-; HELPERS - not pure lambda calculus
-(define read-bool
- (lambda (b)
- (displayln ((b "t") "f"))))
-
-(define read-church
- (lambda (n)
- (displayln ((n (lambda (x) (+ x 1))) 0))))
-
-; -------------------------------------------------
-
-; EXAMPLES
-(displayln "LOGIC")
-(displayln "--------------")
-(displayln "TRUE/FALSE")
-(read-bool _true) ; t
-(read-bool _false) ; f
-
-(displayln "NOT")
-(read-bool (_not _true)) ; f
-(read-bool (_not _false)) ; t
-
-(displayln "AND")
-(read-bool ((_and _true) _true)) ; t
-(read-bool ((_and _true) _false)) ; f
-(read-bool ((_and _false) _true)) ; f
-(read-bool ((_and _false) _false)) ; f
-
-(displayln "OR")
-(read-bool ((_or _true) _true)) ; t
-(read-bool ((_or _true) _false)) ; t
-(read-bool ((_or _false) _true)) ; t
-(read-bool ((_or _false) _false)) ; f
-
-(displayln "\nCHURCH NUMERALS")
-(displayln "--------------")
-(displayln "ZERO/SUCC")
-(read-church _zero) ; 0
-(read-church (_succ _zero)) ; 1
-(read-church (_succ (_succ _zero))) ; 2
-(read-church (_succ (_succ (_succ _zero)))) ; 3
-
-(displayln "PRED")
-(read-church (_pred _one)) ; 0
-(read-church (_pred (_succ _one))) ; 1
-(read-church (_pred (_succ (_succ _one)))) ; 2
-