Collaborative real-time editor with live evaluation
Connect to collaborate with other peers in real-time. Make sure the signaling server is running:
node examples/web/signaling-server.js
let x = 42
let double = \x. { x + x }
let result = double 5
result
let inc = \x. { x + 1 }
let twice = \f. \x. {
f (f x)
}
let result = twice inc 0
result
let choose = \x. if x then {
x + 1
} else {
42
}
let result = choose 5
result
Module ::= (LetDef '\n')* Expression
LetDef ::= 'let' Identifier '=' Expression
Expression ::= BinaryOp
BinaryOp ::= Application (('+' | '-') Application)*
Application ::= Atom+
Atom ::= Integer | Variable | Lambda
| IfThenElse | '(' Expression ')'
Lambda ::= ('λ' | '\') Identifier '.' Expression
IfThenElse ::= 'if' Expression 'then' Expression 'else' Expression
Waiting for input...
Waiting for input...