shell - pannous/warp GitHub Wiki

The preferred term for the neologism repl is shell or console.

Symbolic mode (planned)

In a program, z = y*y before y exists is the error undefined variable: y (charged). The shell will have a symbolic mode in which assignments stay symbolic until their value is asked for:

>>> z = y*y
>>> y = x+x
>>> x = 3
>>> z
y*y
(x+x)*(x+x)
(3+3)*(3+3)
6*6
36
>>> z!
36

In symbolic mode objects are printed in their symbolic form and then evaluated step by step until the final value is revealed; z! shows the final value directly. A direct mode omits the intermediate steps; which mode is the default is configurable.