问题标签 [evaluation-strategy]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
32216 浏览

scala - Scala可以通过引用调用吗?

我知道 Scala 支持 ALGOL 的按名称调用,我想我理解这意味着什么,但是 Scala 可以像 C#、VB.NET 和 C++ 那样做按引用调用吗?我知道 Java 不能进行引用调用,但我不确定这种限制是完全由于语言还是 JVM 造成的。

当您想将庞大的数据结构传递给方法但又不想复制它时,这将很有用。在这种情况下,引用调用似乎很完美。

0 投票
5 回答
7911 浏览

c# - 按值调用和按值传递是同义词吗?

我一直认为按值调用和按值传递同义词。然而,我最近听到有人提到他们,好像他们是不同的。它们是一样的吗?

我也在谈论他们相应的参考术语。

0 投票
4 回答
12245 浏览

programming-languages - 什么是按需调用?

我想知道什么是按需调用。

虽然我在维基百科中搜索并在这里找到它:http ://en.wikipedia.org/wiki/Evaluation_strategy ,但无法正确理解。如果有人可以举例说明并指出按值调用的区别,那将是一个很大的帮助。

0 投票
3 回答
7505 浏览

java - 共享调用和引用调用是否仅在多线程时有所不同?

如果使用 调用函数Call-by-Reference,则对函数内部变量所做的任何更改都会立即影响调用者。而对于Call-by-Sharing,它在函数结束时受到影响。

问题 1: Java 使用Call-by-Sharing而不是Call-by-Reference?

问题2:我认为这Call-by-SharingCall-by-Reference 在多线程时不同。创建它只是为了减少在其他线程中使用时对值的并发覆盖;提供一致性。我对吗?

0 投票
0 回答
60 浏览

language-agnostic - 按名称调用评估和 foreach 循环

我第一次遇到这个问题,我无法弄清楚。

假设我们有一个数组和一个 foreach 循环。像这样的东西:

我错了还是这里行不通?我的意思是,每次我将通过 foreach 循环时,我都会评估 y(按名称),因此,作为 v[i++],我会将我的 i 变量的值增加一。

  1. 所以第一步 y = v[0] 所以 write(10) 然后 i++ (i=1)。
  2. 第二步 y = v[1] 所以 write(20) 然后我将 i 加一(i=2)。
  3. 第三步也是最后一步 y = v[2] 所以再次写(50)和 i++,现在等于 3。

现在,它应该返回什么值?!如果我再次评估 y,我不能做 y = v[3] 因为我超出了界限。我做错什么了吗?我应该在 foreach 循环之前只评估一次 y 吗?在按名称调用参数时,我没有考虑到 foreach 一定有什么东西。

不知道,我有点困惑。

提前致谢!

0 投票
1 回答
84 浏览

c - 假人评估顺序

无论我阅读多少主题,我都无法理解评估策略。你能举个例子给我解释一下这三个评估顺序吗?我在下面写一个代码。您能否使用下面的代码解释按需求调用(惰性评估)、按名称调用(正常顺序评估)、按引用调用。你也可以用你的例子来解释它们。我只想理解他们,但我就是无法理解。

提前致谢。

}

0 投票
1 回答
667 浏览

evaluation - “顶级评价”是什么意思?

“顶级评价”是什么意思?

这个术语在它所提到的文本中没有定义。我不想告诉具体的上下文,因为我只对一般的解释感兴趣。

0 投票
3 回答
453 浏览

perl - 如果 perl 是按引用调用的,为什么会发生这种情况?

我读过 perl 在执行子程序时使用引用调用。我编写了一段简单的代码来检查这个属性,但它的行为就像 perl 是按值调用的:

这会产生以下输出:

如果以引用调用的方式处理参数,x 不应该等于 x1 并且 y 不应该等于 y1 吗?

0 投票
2 回答
112 浏览

python - 一次评估一个函数并将结果存储在python中

我在 python 中编写了一个静态方法,它需要时间来计算,但我希望它只计算一次,然后返回计算值。我应该怎么办 ?这是一个示例代码:

0 投票
1 回答
105 浏览

haskell - 无限随机序列循环与 randomIO 但不是与 getRandom

我很难想出一种方法来解释为什么以下两个看似等效的无限随机数序列 (infinf') 的定义被完全不同地评估:

当被调用时,main'终止并打印 5 个随机整数,而main无限循环 - 是什么原因导致对它的评估与对它的sequence . repeat评估不同?getRandomrandomIO