Block Lang
MIT Scratch, but for lambda calculus, because we all have trouble finding the 'λ'-key, when trying to type it.
General idea
Lambda calculus, but a visual drag-n-drop application, a bit like MIT Scratch
Theme: Beautiful assembly
Putting blocks together counts as assembly
The beautiful part, is animating the reductions (Not finished yet)
Build instruction
cargo run
Or
cargo run --features bevy/dynamic
to avoid having to recompile bevy.
How 2 use
This program is for making lambda calculus expressions.
Lambda consists of three elements
- Variables
x
is the green block - Functions
λx.x
is the red block - Applications
(λx.x) x
is the purple block
Step by step example
Press a
to make an application. The block will now follow your mouse cursor, until you click somewhere on the canvas.
Now press f
to pay respect to make a function, and place it on the left side of the application.
Then press v
to make a variable and place it on the top-half of the function.
Hover on the varible, press c
, and then click the function block. Now the variable is bound to the function.
Make another function, place it on the right side of the application and insert a variable on the bottom.
Now hover the mouse directly on the frame of the application and press r
. That will read the expression, show it in text form on the sidebar. It will also reduce the expression, and show the reduced expression in text form, below the original expression.