Runtime evaluation: Difference between revisions

Added Erlang.
(TI-89 BASIC)
(Added Erlang.)
Line 119:
? prog.eval(safeScope)
# value: 2</lang>
 
=={{header|Erlang}}==
 
Erlang eval is a bit complex/verbose and requires the interaction of 3 modules: <tt>erl_scan</tt> (tokenizes), <tt>erl_parse</tt> (returns an abstract form) and <tt>erl_eval</tt> (variable binding, evaluate abstract form, etc).
<lang erlang>
1> {ok, Tokens, _} = erl_scan:string("X + 4 * lists:sum([1,2,3,4]).").
...
2> {ok, [Form]} = erl_parse:parse_exprs(Tokens).
...
3> Bindings = erl_eval:add_binding('X', 17, erl_eval:new_bindings()).
[{'X',17}]
4> {value, Value, _} = erl_eval:expr(Form, Bindings).
{value,57,[{'X',17}]}
</lang>
 
 
=={{header|Groovy}}==
Anonymous user