|
1 | 1 | # Lambda Calculus |
2 | | -[](https://travis-ci.org/sgillespie/lambda-calculus) |
3 | | - |
| 2 | +> An introduction to the Lambda Calculus |
4 | 3 | Lambda Calculus is a tiny functional language for expressing computation based |
5 | 4 | on function abstraction and application. |
6 | 5 |
|
7 | 6 | This project is intended to be an educational resource for learning and |
8 | 7 | implementing functional programming languages. |
9 | 8 |
|
| 9 | +Looking for Lambda Calculator? It's been moved into it's own repository: https://github.com/sgillespie/lambda-calculator |
| 10 | + |
10 | 11 | # Introduction to Lambda Calculus |
11 | 12 | Introductory material is provided. They can be found at |
12 | 13 |
|
13 | 14 | * [doc/lambda-calculus.md](doc/lambda-calculus.md) |
14 | 15 | * [doc/system-f.md](doc/system-f.md) |
15 | 16 |
|
16 | 17 | ## Extended Examples |
17 | | -More examples can be found in the test-suite, located at |
| 18 | +More examples can be found in the Lambda Calculator's test-suite, located at |
18 | 19 |
|
19 | | -[test/Language/Lambda/Examples](test/Language/Lambda/Examples) |
| 20 | +[test/Language/Lambda/Untyped/Examples](test/Language/Lambda/Untyped/Examples) |
| 21 | +[test/Language/Lambda/SystemF/Examples](test/Language/Lambda/SystemF/Examples) |
20 | 22 |
|
21 | 23 | # Implementation |
22 | | -A simple implementation of the untyped lambda calculus is included. It is written in |
23 | | -Haskell and is implemented to be as easy to follow, at the possible expense of |
24 | | -performance. |
25 | | - |
26 | | -## Building |
27 | | -In order to build, you will need |
28 | | - |
29 | | - * GHC >= 8 |
30 | | - * stack |
31 | | - |
32 | | -Build: |
33 | | - |
34 | | - stack build |
35 | | - |
36 | | -Then install: |
37 | | - |
38 | | - stack install |
39 | | - |
40 | | -## Running |
41 | | -Once the program is installed, you simply run it: |
42 | | - |
43 | | - lambda-calculator |
44 | | - |
45 | | -This will open a repl (read-eval-print loop) prompt |
46 | | - |
47 | | - Lambda Calculator (0.5.0) |
48 | | - Type :h for help |
49 | | - |
50 | | -You can start typing lambda calculus expressions and the program will evaluate them |
51 | | -and print the result. Here are a few examples: |
52 | | - |
53 | | - Lambda Calculator (0.5.0) |
54 | | - Type :h for help |
55 | | - λ > \x. x |
56 | | - λx. x |
57 | | - λ > (\x. x) n |
58 | | - n |
59 | | - λ > (\n f x. f (n f x)) (\f x. f (f x)) |
60 | | - λf x. f (f (f x)) |
61 | | - λ > :q |
62 | | - |
63 | | -You can exit by typing the command :q. |
64 | | - |
65 | | -## Running Tests |
66 | | -In order to run the testsuite, run |
67 | | - |
68 | | - stack test |
69 | 24 |
|
70 | 25 | # Author |
71 | 26 | |
|
0 commit comments