Anonymous user
Runtime evaluation: Difference between revisions
→{{header|Go}}
(→{{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}}==
|