def (rename functions, command strings, multi-line commands, pieces of
functions with spec context (like "north"))
conditional commands
high scores based on command string lengths to solve a particular problem
filter [X>5 Y>2 color=blue] tag [bluo]
filter [tag=bluo] move north 2
filter [tag=bluo]
move north 2
move east 3
if [east=green] trade east
successive lines refer to the same filter
filter [] would back out of this and go back into the global space, like:
filter [x>5] tag [bluo]
filter [] tag [all]
Functions
define ne [$amt] context move [$1]
move north $amt
move east $amt
end
define bluemove [$color] context function
filter [tag=bluo]
move north 2
move east 3
if [east=$color] trade east
end
more complicated (probably TOO complicated)
define bluemove [$color $dir] context function
filter [tag=bluo]
move {cw $dir} 2
move $dir 3
if [$dir=$color] trade $dir
end
redefine function names
define f context rename filter
f [tag=bluo]
moving block behavior
stop
jump over
replace
trade
these should be settable, ie
options move [block=stop8]
syntax
[] anything in here is a list, whether it's part of a function or an array of
values
{} this allows you to execute commands inside other commands, replacing the
block with that command's output
commands are meant to be long and loquacious, so you can set shortcuts at your leisure.