diff options
author | Marvin Borner | 2025-02-02 19:16:07 +0100 |
---|---|---|
committer | Marvin Borner | 2025-02-02 19:16:07 +0100 |
commit | 56b207e50c8fd316a391cc7136676e2c682c06c0 (patch) | |
tree | cff0d93d4ab3492bff19e644e6b9fc0cf3cc44cf | |
parent | 0dc8d37aa15f69440ce392af76435ef9fecd68cd (diff) |
-rw-r--r-- | languages/b/bruijn/README.md | 14 | ||||
-rw-r--r-- | languages/b/bruijn/lambda-core.bruijn | 45 |
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]] |