full evaluation - pannous/warp GitHub Wiki
full evaluation: !!
x! runs a block once: one level is removed, and blocks nested inside the result stay blocks. x!! (or
interpret x) runs it fully, including every nested block (charged).
eval(text) runs the code a text holds, with the names where it is written: x = 5; eval("x*2") is 10.
Planned: dates and times are evaluated at compile time only today, so now inside an object is refused.
friends = {peter james created: now}
friends.created // the block now
friends.created! // the time when ! runs
friends!! // every uncharged field evaluated: created is the time when !! runs
To keep the time of construction, bind a value instead of a block: friends = {peter james created = now}.