Compare commits

..

No commits in common. "acbc247e10ba489bc587802b1cc77764032d0d53" and "73f4c60c06249e6adad15343c04e64caeec1ed72" have entirely different histories.

1 changed files with 7 additions and 18 deletions

View File

@ -1,4 +1,4 @@
# 🐑 Lamb: A Lambda Calculus Engine # Lamb: A Lambda Calculus Engine
- [Primary Repo](https://git.betalupi.com/Mark/lamb) - [Primary Repo](https://git.betalupi.com/Mark/lamb)
- [Github Mirror](https://github.com/rm-dr/lamb) - [Github Mirror](https://github.com/rm-dr/lamb)
@ -7,17 +7,7 @@
![Lamb demo](https://betalupi.com/static/git/lambdemo.gif) ![Lamb demo](https://betalupi.com/static/git/lambdemo.gif)
## :brain: What is lambda calculus? ## Installation
- [video 1](https://www.youtube.com/watch?v=3VQ382QG-y4): Introduction and boolean logic. The first few minutes are a bit confusing, but it starts to make sense at about [`6:50`](https://youtu.be/3VQ382QG-y4?t=400)
- [video 2](https://www.youtube.com/watch?v=pAnLQ9jwN-E): Continuation of video 1. Features combinators and numerals.
- [blog](https://www.driverlesscrocodile.com/technology/lambda-calculus-for-people-a-step-behind-me-1): Another introduction. Moves slower than the two videos above and doesn't assume CS knowledge. Four-part series.
- [handout](https://nc.betalupi.com/s/ormc-handouts/download?path=%2FAdvanced&files=Lambda%20Calculus.pdf): A handout I've written on lambda calculus. Solutions are available somewhere on `git.betalupi.com`. You'll have to find them yourself if you want them.
## :package: Installation
### Method 1: [PyPi](https://pypi.org/project/lamb-engine) ### Method 1: [PyPi](https://pypi.org/project/lamb-engine)
1. *(Optional but recommended)* make and enter a [venv](https://docs.python.org/3/library/venv.html) 1. *(Optional but recommended)* make and enter a [venv](https://docs.python.org/3/library/venv.html)
@ -37,10 +27,10 @@
------------------------------------------------- -------------------------------------------------
## 📖 Usage ## Usage
Type expressions into the prompt, and Lamb will evaluate them. \ Type lambda expressions into the prompt, and Lamb will evaluate them. \
Use your `\` (backslash) key to type a `λ`. \ Use your `\` (backslash) key to type a `λ`. \
To define macros, use `=`. For example, To define macros, use `=`. For example,
``` ```
@ -79,7 +69,7 @@ Have fun!
------------------------------------------------- -------------------------------------------------
## :card_file_box: Commands ## Commands
Lamb understands many commands. Prefix them with a `:` in the prompt. Lamb understands many commands. Prefix them with a `:` in the prompt.
@ -118,7 +108,6 @@ The lines in a file look exactly the same as regular entries in the prompt, but
- Loop detection - Loop detection
- α-equivalence check - α-equivalence check
- Unchurch command: make church numerals human-readable - Unchurch command: make church numerals human-readable
- Better syntax highlighting - Better Syntax highlighting
- Tab-complete file names and commands - Complete file names and commands
- Load default macros without manually downloading `macros.lamb` (via `requests`, maybe?)
- Tests - Tests