Runtime evaluation/In an environment: Difference between revisions

Content added Content deleted
(trying to clarify some more...)
(revert Tcl: insofar as I understand the Tcl, the old version was closer to correct, and I understand the change was an attempt to comply with my task req changes)
Line 175: Line 175:


=={{header|Tcl}}==
=={{header|Tcl}}==

{{incorrect|Tcl|The code provided should not itself be a function, but have x as a free variable.}}


<lang tcl>package require Tcl 8.5
<lang tcl>package require Tcl 8.5


proc evalit {func a} {
proc eval_twice {func a b} {
set r [apply $func $a]
set 1st [apply $func $a]
expr {$r}
set 2nd [apply $func $b]
expr {$2nd - $1st}
}
}


set a [evalit {x {expr {2 ** $x}}} 3];
eval_twice {x {expr {2 ** $x}}} 3 5 ;# ==> 24</lang>
set b [evalit {x {expr {2 ** $x}}} 5];
puts [expr {$b - $a}];
</lang>