The eval function is used to evaluate a string as a glish statement and return the result. This is probably most useful for things like allowing users to enter Glish commands from a GUI. Here is an example of how eval is used:
x := 10 y := 18 print eval("y +:= 2", "x * y")In this example, the output will be 200, and y will equal 20. Currently, the strings passed to eval are always evaluated in the global scope. This is true even if eval is called from a function; this is a bug. The result is the following unexpected behavior:
x := 10 y := 18 func foo() { y := 2; return eval("y +:= 2", "x * y") } print foo()This example results in output of 200 and the global y equal to 20 (the same as the previous example). This will hopefully be fixed in a later release.