Let's say I have a function that draws Beziér curves given a series of coordinate pairs, which are set interactively by dragging circles around. Instead of updating this list of coordinate pairs based on the circle locations "by hand", by coding it in an update loop, I can use the <: operator to "link" circle locations with input coordinates, thus obviating the need to write the code myself.
I think you should have internal values, the functions actually act on the internal values, and assigning to them assigns to internal values if types match
On a different note, I've realized that making AST nodes handle the execution of the program is bad and/or wrong. So today, I'm going to write another function that actually does the execution work, and refactor everything else accordingly.
@animaacija I'm not entirely sure what you're trying to say, but if I'm guessing right: I occasionally use CJam (a language designed for golfing) for simple scripts, because for those, typing speed is actually the bottleneck, and having to type fewer characters let's me solve problems faster.