问题标签 [pass-by-name]

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 投票
6 回答
17250 浏览

pass-by-reference - 通过引用、值和名称调用

我试图理解按引用、值和名称调用之间的概念差异。

所以我有以下伪代码:

如果 a、b 和 c 都是通过引用调用,那么 foo 调用之后的 X、Y 和 Z 是什么?如果 a、b 和 c 是按值/结果调用?如果 a、b 和 c 是按名称调用的?

另一种情况:

我正在努力为即将到来的期末考试抢占先机,这似乎是一个很好的复习问题。Pass-by-name 对我来说绝对是最陌生的。

0 投票
1 回答
35 浏览

c - output of a function which has passByName parameter passing paradigm

I've tried to figure out what is the output of a code like this .By the way ,It is not a real question, kind of therical question, i mean it is not an original c code, it is kind of a PL having c-code syntax and passed by name parameter paradigm.

I think the output of first part should be :

But i could find a logical solution for the part tswap (++x, ++y) Is there anyone who can know how can I handle with this part ?

Thanks in advance !

0 投票
1 回答
1893 浏览

r - 如果我只知道对象的名称作为字符串,如何覆盖 R 中的对象?

在我的 R 函数中,我正在处理一个字符串,该字符串包含位于工作区某处的对象的名称。我想覆盖对象(例如,将对象转换为矩阵)。

但是,我只知道对象的名称是字符串,我没有对象引用。我知道我可以通过使用get(x)函数(x引用对象的字符串在哪里)或类似的东西将字符串转换为对象引用eval(as.name(x))。但是,这仅适用于访问对象,不适用于覆盖对象。

我怎样才能做到这一点?这是一些代码:

请注意,第一行不是我要在工作区中覆盖此对象的函数的一部分,所以我不能只写myvector <- as.matrix(myvector).

0 投票
1 回答
622 浏览

multithreading - 为什么scala挂起评估未来中的按名参数?

下面的(人为的)代码尝试在未来打印一个按名称的字符串参数,并在打印完成时返回。

但是,在运行时RunMe,它只是在尝试评估时挂起param。更改printIt为按值接收其参数会使应用程序按预期返回。或者,更改printIt为简单地打印值并同步返回(在同一个线程中)似乎也可以正常工作。

这里到底发生了什么?这是否与尚未完全构建的 Go 对象有关,因此该str字段对于尝试打印它的线程尚不可见?在这里挂起预期的行为吗?

我已经在 J​​ava 1.7 上的 Mac OS Mavericks 和 Windows 7 上使用 Scala 2.10.3 进行了测试。

0 投票
1 回答
83 浏览

history - 通过名称传递评估变量

我对按名称传递有疑问

我确实提到了关于什么是名称传递以及它是如何工作的早期问题之一

以及其中给出的链接:

通过名称参数传递

我的问题是:上面的代码会打印:( 14 , 1 ) 还是 (14, 14)

基本上怀疑是程序中k的值是否反映在主程序中。

我正在准备考试。这是一个问题库中给出的代码片段。

0 投票
0 回答
78 浏览

scala - Scala collection that accepts pass-by-name parameters

Does such collection exist?

At the moment the code I have doesn't compile:

Erros are:

  • forward reference extends over definition of value d
  • forward reference extends over definition of value c
  • forward reference extends over definition of value b
  • forward reference extends over definition of value a
0 投票
1 回答
182 浏览

c++ - 按名称调用(正常订单评估)

我在下面有以下代码(类似 C 的语言)。我知道如何跟踪是否使用了按值传递或按引用传递,但也有按名称调用机制。谁能指导我如何追踪姓名呼叫?

如果使用按值传递,则输出将如下所示:

4 12 4 11

4 11 4

12 5 12 13

12 13 4

0 投票
1 回答
275 浏览

scala - 在 DSL 中隐藏和限定隐式变量创建

在开发 DSL 时,限制隐式变量的范围并同时隐藏定义了此类隐式变量的事实的最简洁方法是什么?

例如,这是所需的行为......

以下接近,但没有所有所需的属性......

0 投票
4 回答
1106 浏览

scala - Scala 名称参数的使用

我正在阅读“Scala 中的函数式编程”一书,并且遇到了一个我不完全理解的示例。

在关于严格/懒惰的章节中,作者描述了 Streams 的构造并有这样的代码:

我的问题是在智能构造函数 ( cons) 中,它调用Cons案例类的构造函数。用于传递headand tailvals 的特定语法对我来说没有意义。为什么不像这样调用构造函数:

head据我了解所使用的语法是强制创建两个仅返回和val的 Function0 对象tail。这与仅传递headtail(不带() =>前缀)有何不同,因为Cons案例类已经定义为按名称获取这些参数?这不是多余的吗?还是我错过了什么?

0 投票
1 回答
57 浏览

scala - 扩展采用按名参数的类时,在超类的构造函数中使用存储值

我有一个案例,我希望扩展一个在其构造函数中采用名称参数的类:

但是,调用会something.getSomething(false)导致副作用,因此不能多次调用。

something.getSomething(false)在将 , 的结果传递给超类的构造函数之前,如何存储它的结果?