鉴于以下 [任意语言,虽然我认为这是 ALGOL] 程序:
program main; // A main parent level
var i : integer; // A 'global' variable
(* Note that all parameters are passed by value here *)
function f1 (j : integer) : integer; // A Child function
begin { f1 }
i := i + 3;
f1 := 2 * j - i;
end; { f1 }
function f2 (k : integer) : integer; // Another Child function, same level as f1
var i : integer; // Here, there is a variable that is declared
begin { f2 } // but no value assigned
i := k / 2;
f2 := f1(i) + f1(k);
end; { f2 }
begin { main } // Running/Calling/Executing the code
i := 8;
i := i + f2(i);
writeln(i);
end. { main }
您将如何使用javascript在两个方向上使用动态范围(从左到右评估然后从右到左评估)在整个程序中显示值,以便我可以交互地更改值并观察会发生什么?
我在一些问题上学得有点慢,比如要求输出的值,但没有在整个程序中显示值状态,并试图更好地理解,特别是在我可以交互玩的例子中。
我为从左到右的静态作用域创建了一个 plnkr,为从右到左
的静态作用域创建了另一个 plnkr,请
随意分叉它们的交互式答案:)。