問題タブ [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 投票する
1 に答える
35 参照

c - passByName パラメータ受け渡しパラダイムを持つ関数の出力

私はこのようなコードの出力が何であるかを理解しようとしました.ちなみに、それは実際の質問ではなく、一種の理論的な質問です.つまり、それは元のCコードではなく、PLのようなものです. c コードの構文であり、名前パラメーター パラダイムによって渡されます。

最初の部分の出力は次のようになるはずです:

しかし、部分 tswap (++x, ++y) の論理的な解決策を見つけることができました。この部分をどのように処理できるかを知っている人はいますか?

前もって感謝します !

0 投票する
1 に答える
622 参照

multithreading - なぜscalaはFutureで名前によるパラメータを評価してハングアップするのですか?

以下の (考案された) コードは、future 内で名前別の String パラメータを出力しようとし、出力が完了すると戻ります。

ただし、 を実行RunMeすると、 を評価しようとしてハングするだけparamです。パラメータを値で受け取るように変更printItすると、アプリケーションは期待どおりに戻ります。あるいは、printIt単に値を出力して同期的に (同じスレッドで) 返すように変更しても、うまくいくようです。

ここで正確に何が起こっているのですか?これは、Go オブジェクトがまだ完全に構築されていないことに何らかの形で関連しているので、strフィールドを印刷しようとしているスレッドにはまだ表示されていませんか? ここで予想される動作をぶら下げていますか?

Java 1.7 で、Mac OS Mavericks と Windows 7 の両方で Scala 2.10.3 をテストしました。

0 投票する
1 に答える
83 参照

history - 名前渡しによる変数の評価

Pass By Nameについて疑問があります

名前渡しとは何か、それはどのように機能するかについての以前の質問の1つを参照しました

およびその中にあるリンク:

名前パラメータ渡しによる受け渡し

私が持っている質問は次のとおりです:上記のコードは印刷されますか: ( 14 , 1 ) または (14, 14)

基本的に疑問は、手順の k の値がメイン手順に反映されるかどうかです。

私は試験の準備をしています。これは、問題バンクの 1 つで指定されたコード スニペットです。

0 投票する
0 に答える
78 参照

scala - 名前渡しパラメーターを受け入れる Scala コレクション

そのようなコレクションは存在しますか?

現時点では、私が持っているコードはコンパイルされません:

エラーは次のとおりです。

  • 前方参照は値 d の定義を超えています
  • 前方参照は値 c の定義を超えて拡張されます
  • 前方参照は、値 b の定義を拡張します
  • 前方参照は、値 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 - Use of Scala by-name parameters

I am going through the book "Functional Programming in Scala" and have run across an example that I don't fully understand.

In the chapter on strictness/laziness the authors describe the construction of Streams and have code like this:

The question I have is in the smart constructor (cons) where it calls the constructor for the Cons case class. The specific syntax being used to pass the head and tail vals doesn't make sense to me. Why not just call the constructor like this:

As I understand the syntax used it is forcing the creation of two Function0 objects that simply return the head and tail vals. How is that different from just passing head and tail (without the () => prefix) since the Cons case class is already defined to take these parameters by-name anyway? Isn't this redundant? Or have I missed something?

0 投票する
1 に答える
57 参照

scala - 名前によるパラメーターを取るクラスを拡張するときに、スーパークラスのコンストラクターで格納された値を使用する

コンストラクターで名前別パラメーターを取るクラスを拡張したい場合があります。

ただし、 の呼び出しはsomething.getSomething(false)副作用を引き起こすため、複数回呼び出すことはできません。

something.getSomething(false)スーパークラスのコンストラクターに渡す前に、の結果を保存するにはどうすればよいですか?