問題タブ [first-class-functions]
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.
php - PHP でクラス メンバーから関数を呼び出す
私は次のものを持っているとしましょう:
上記は次のエラーをスローします。
致命的なエラー: 未定義のメソッド C::f() の呼び出し
$this->f
そして、オブジェクトのメンバー関数を呼び出すのと同じ構文を使用してコールバック関数を呼び出そうとしているためだと推測しています。
では、メンバー変数に格納されている関数を呼び出すための構文は何ですか?
c# - Java Runnable の C# バージョン? (代表?)
SOではまだこの質問に対する直接的な答えを見つけることができませんでした。void (void)
署名付きの事前定義されたデリゲートはありますか?
python - オブジェクト指向アプローチを使用して関数を引数として渡すのと同じことは何ですか
メソッドの引数として関数を受け取るクラスを含むPythonのプログラムがあります__init__
。この関数は属性として保存され、クラス内のさまざまな場所で使用されます。渡される関数は非常に多様である可能性があり、キーを渡してから事前定義された関数のセットから選択しても、同じ程度の柔軟性は得られません。
さて、このような質問の長いリストがクールではない場合はお詫びしますが...
- 関数がファーストクラスのオブジェクトではない言語でこれを達成するための標準的な方法ですか?
- smalltalkやobjective-Cのように、ブロックはこの点で関数としてカウントされますか?
- これらの言語でこれを行うには、ブロックが最善の方法でしょうか?
- ブロックがない場合はどうなりますか?
- 実行時に新しいメソッドを追加できますか?
- これはどの言語で可能(そして簡単)ですか?
- または、目的の操作を実行する単一のメソッドを使用してオブジェクトを作成する方がよいでしょうか。
- たくさんの関数を渡したい場合、たくさんのシングルトンオブジェクトを作成しますか?
- これは、よりオブジェクト指向のアプローチと見なされますか?
- 関数がファーストクラスのオブジェクトであるPythonでこれを行うことを誰かが検討しますか?
lua - Desugar Lua オペレーター
Lua はファーストクラスの関数をサポートしているので、多くの関数型言語のように演算子を desugar できるかどうか知りたいです。たとえば、OCaml では次のことができます。
上記のコードx
は、値で変数を初期化します3 + 5
。書き込み(+)
は、2 つのパラメーターを取り、それらの合計を返すローカル関数を持つことと同じです。と の 2 つの引数を(+) 3 5
指定してこの関数を呼び出しています。これの背後にある動機は、前に関数でラップすることなく、演算子を関数に直接渡すことができることです。3
5
ありがとう!
javascript - 関数のメンバーに割り当てる方法は?
関数はファースト クラス オブジェクトであるため、関数のメンバーに割り当てることができるはずです。
それがこれを行うと私は正しいと思いarguments.callee
ますか?
これらのフィールドを設定する他の方法はありますか?
field
最初のケースでどのように設定できますか?
更新 1
実行時に関数内からメンバーにアクセスする方法を意味します。
scala - コンストラクターで可変引数を使用する関数
これをScalaで機能させようとしています:
上記のコードはコンパイルされませんが (なぜですか?)、次のコードはコンパイルされます。
それはOKですが、2つは同等ですか?もしそうなら、どうすればfunc
内部で使用できMyClass
ますか?
exception - Clojure で「適用」関数を使用するとエラーが発生する:「Java.lang.Long から ISeq を作成する方法がわからない」
「Clojure in Action」 (p. 63) の次の例に取り組んでいます。
REPL の評価:
次の例外がスローされます。
適用プロシージャが評価された後に例外がスローされているようです。
javascript - JSの関数がファーストクラスの場合、定義される前にそれらを呼び出すことができるのは何ですか?
第一級関数は、それらが変数として動作することを意味しませんか?明らかに、これらは変数とまったく同じようには動作しません。
...動作しませんが、これは:
...します。
そうは言っても、これは:
動作しません。これはより一貫性があります。
何が得られますか?
unit-testing - Lua: テーブルに特定の関数が含まれていることを確認する方法
渡された引数に基づいて、関数でいっぱいのテーブルを返すモジュールを開発しています。具体的には、モジュールは、顧客がどの顧客であるかに応じてデータセットに適用する必要がある一連のデータ変換ルール (関数) を返します。それを送る。
どのルールを適用するかを決定するコード (config ロジック) からルール ライブラリ (biz ロジック) を切り離すことにしました。
私のシナリオの 1 つに基づいて、ruleBuilder が正しいルール (関数) を追加していることを確認するために、私が書いている単体テストを次に示します。
これはその検証を行う正しい方法ですか?ruleLibrary.missingSSNRule
関数がクロージャーまたはパラメーターを介して他のいくつかの関数への参照を持っている場合でも、これは機能しますか?
javascript - Javascript での関数の長い配列の最適化と実装
私は現在、Javascript でエミュレーターを実装しています。エミュレートされたプラットフォームのメモリ モデルはかなり複雑です。そのため、次のように関数の配列を介して読み取りと書き込みを行っています。
明らかに、読み取り関数と書き込み関数は非常に頻繁に呼び出されるため (少なくとも命令ごとに 1 回、主な実行はOperators[Read(ProgramCounter)]()
)、パフォーマンスに非常に敏感です。
実行できるパフォーマンスの最適化はありますか? これは最良の方法ですか?