https://github.com/rsm-lisper/lambda-calculus-interpreter
Lambda Calculus Interpreters implemented in couple different languages. Just for fun.
https://github.com/rsm-lisper/lambda-calculus-interpreter
interpreter lambda lambda-calculus
Last synced: 4 months ago
JSON representation
Lambda Calculus Interpreters implemented in couple different languages. Just for fun.
- Host: GitHub
- URL: https://github.com/rsm-lisper/lambda-calculus-interpreter
- Owner: rsm-lisper
- License: gpl-3.0
- Created: 2023-11-06T13:53:42.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2024-07-06T16:30:48.000Z (over 1 year ago)
- Last Synced: 2025-04-11T06:59:08.889Z (9 months ago)
- Topics: interpreter, lambda, lambda-calculus
- Language: PHP
- Homepage:
- Size: 70.3 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Lambda Calculus Interpreter
Lambda Calculus Interpreters implemented in couple different languages. Just for fun.
Project in its early stage.
# Valid Lambda Calculus Expression
Expression can be a **name** to identify an abstraction point, a **function** to introduce an abstraction or a **function application** to specialize an abstraction.
`` ::= `` | `` | ``
## Name
Any sequence of non-special characters. Special characters are: ` `, `(`, `)`, `[`, `]`, and `;`. For example:
```
10 some 7-and-not-5 :other: 0.0.111 -->
```
## Function
Lambda function is an abstraction over a lambda expression and has the form:
`` ::= `(lambda () )`
where:
`` ::= ``
For example:
```scheme
(lambda (x) x)
(lambda (first) (lambda (second) first))
(lambda (func) (lambda (arg) (func arg)))
```
## Application
A function application has the form:
`` ::= `( )`
where:
`` ::= ``
``
For example:
```scheme
((lambda (x) x) 100)
(((lambda (f) (lambda (n) f)) ) )
```
## Syntax extensions
- `[` and `]` can be used interchangeably with `(` and `)`
- any text between `;` and the end of line is ignored