aboutsummaryrefslogtreecommitdiff
path: root/languages/b/bruijn/lambda-core.bruijn
diff options
context:
space:
mode:
Diffstat (limited to 'languages/b/bruijn/lambda-core.bruijn')
-rw-r--r--languages/b/bruijn/lambda-core.bruijn45
1 files changed, 45 insertions, 0 deletions
diff --git a/languages/b/bruijn/lambda-core.bruijn b/languages/b/bruijn/lambda-core.bruijn
new file mode 100644
index 0000000..f537470
--- /dev/null
+++ b/languages/b/bruijn/lambda-core.bruijn
@@ -0,0 +1,45 @@
+# -----
+# LOGIC
+# -----
+
+true [[1]]
+
+false [[0]]
+
+¬‣ [[[2 0 1]]]
+
+:test (¬true) (false)
+:test (¬false) (true)
+
+…⋀… [[0 1 0]]
+
+:test (true ⋀ true) (true)
+:test (true ⋀ false) (false)
+:test (false ⋀ true) (false)
+:test (false ⋀ false) (false)
+
+…⋁… [0 0]
+
+:test (true ⋁ true) (true)
+:test (true ⋁ false) (true)
+:test (false ⋁ true) (true)
+:test (false ⋁ false) (false)
+
+# ------
+# CHURCH
+# ------
+
+zero [[0]]
+
+++‣ [[[1 (2 1 0)]]]
+
+:test (++(++zero)) ([[1 (1 0)]])
+
+--‣ [[[[0 [0]] (2 [[0 (1 3)]] [1])]]]
+
+:test (--(++zero)) (zero)
+:test (--[[1 (1 0)]]) ([[1 0]])
+:test (--[[1 (1 (1 0))]]) ([[1 (1 0)]])
+
+# aside from tests: empty program
+main [[0]]