aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--languages/b/bruijn/README.md14
-rw-r--r--languages/b/bruijn/lambda-core.bruijn45
2 files changed, 59 insertions, 0 deletions
diff --git a/languages/b/bruijn/README.md b/languages/b/bruijn/README.md
new file mode 100644
index 0000000..7b781a8
--- /dev/null
+++ b/languages/b/bruijn/README.md
@@ -0,0 +1,14 @@
+# bruijn
+
+To run, follow the installation instructions on [bruijn's
+wiki](https://bruijn.marvinborner.de/wiki/introduction/installation/)
+and run
+
+``` bash
+# to run main and check the tests!
+bruijn -v lambda-core.bruijn
+```
+
+Further examples can be found in
+[examples](https://bruijn.marvinborner.de/samples/) or in the [standard
+library](https://bruijn.marvinborner.de/std/).
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]]