Runtime evaluation: Difference between revisions

(→‎{{header|R}}: implemented R version)
Line 232:
restore
unused . \ same as first unused; restore, foo, and my-def no longer defined</lang>
 
=={{header|Go}}==
As a compiled, strongly typed language, <code>eval()</code> is not the strong suit of Go. Nevertheless, there's <code>exp/eval</code> package, part of Go interpreter project, that does that. Just don't expect it to be as easy or efficient as in interpreted languages.
<lang Go>package main
import (
"fmt"
"exp/eval"
"go/token"
)
 
func main() {
w := eval.NewWorld();
fset := token.NewFileSet();
 
code, err := w.Compile(fset, "1 + 2")
if err != nil {
fmt.Println("Compile error");
return
}
 
val, err := code.Run();
if err != nil {
fmt.Println("Run time error");
return;
}
fmt.Println("Return value:", val) //prints, well, 3
 
}</lang>
 
=={{header|Groovy}}==
Anonymous user