| Launch in | sandbox | mode with Java Web Start or in an Applet |
| Launch in | trusted | mode with Java Web Start or in an Applet |
Lambda Animator is a tool for demonstrating and experimenting with alternative reduction strategies in the lambda calculus. Eager languages reduce arguments before function application. Lazy languages reduce arguments, if needed, after function application.
Reductions can also be performed within function bodies.
Performing reductions within functions can have a specializing effect.
If a function is applied more than once then any reductions performed within the function
will be performed once before the function body is copied instead of multiple times after.
These specializing reductions can also be performed eagerly or lazily.
The specializing effect is sufficient to remove interpretive overhead.
Usage
Lambda Animator can be launched in two ways:
The JAR file contains the source code so you can compile it on your own computer if you want.
Lambda Animator uses resources on this website.
These include further instructions and examples.
Screen shots
These screen shots demonstrates the power function being specialized with the value 3.
The resulting cube function takes 4 beta and 17 delta reduction steps the first time it is applied, and then only one beta and three delta reduction steps on subsequent uses.
To see the intermediate steps, and to see more complex examples, launch the sandbox version.
To try your own programs run the trusted version.
| | |
| |
These screen shots show stream fusion of a three stage pipeline in 22 beta-reductions.