問題タブ [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.
javascript - nodejsで非同期関数を処理する方法
私は nodejs を学んでいますが、引き続き頭を悩ませていることの 1 つは、nodejs が構築されている非同期プログラミングです。たぶん私は何か間違ったことをしているのかもしれませんが、すべての調査にもかかわらず、同期プログラミングのバックグラウンドからどのように適応すべきかについて頭を悩ませることはできません。どこからでも func2 を呼び出したい場合、誰かが以下の構造に基づいた簡単な非同期の例を教えてくれたら本当にありがたいです。
私が遭遇した問題は、obj が func1 では undefined として出力されるのに対し、func2 では問題が発生しないことです。関数を相互にネストすると機能し、nodejs の非同期の性質により、func2 が終了する前に func1 にログインしたと思われました。私の仮定は間違っていますか?
上記の例で私が苦労しているのは、関数を相互にネストするのではなく、関数をどのようにコーディングすれば、複数の異なる関数から一度に func2 を呼び出すことができるかということです。コールバックを調べましたが、関数内の関数を使用したさまざまな回答で示されている例を理解できませんでした。
scala - ScalaFx: ファースト クラス関数を使用したイベント ハンドラー
scalaFx アプリでイベント ハンドラーを作成しようとしています。私は次の解決策を見つけました:
しかし、これは非常に Java スタイルのボイラープレート コードのようです。このようなファーストクラスの関数でこれを行う方法はありますか?
コンパイラは次のように述べています。
javafx.scene.input.MouseEvent => scalafx.delegate.SFXDelegate[javafx.scene.input.MouseEvent] with javafx.scene.input.MouseEvent から利用可能な暗黙的なビューはありません。
java - Java 8 は一等市民として機能しますか?
したがって、私の関数型プログラマーは、関数を第一級市民として扱う Python のような言語が好きです。Java 8 はプレッシャーに屈し、ラムダ式やメソッド参照などを実装したようです。
私の質問は、Java がファースト クラス関数を使用する方向に進んでいるのか、それともランナブルなどの匿名クラス/インターフェイスを実装するために必要なコード量を減らすための構文糖衣にすぎないのかということです。(私の腸は後者を言います)。
私の理想のシナリオ
function - ファーストクラス関数とは正確には何ですか?
私はこの用語を理解するためにウェブを検索しました。「ファーストクラス関数」は、変数に割り当てて「受け渡す」ことができる関数であることを理解しています。しかし、私はこれが何を意味するのか実際には理解していません。
それで、それはどういう意味ですか?ファーストクラス関数とは正確には何ですか?
例は大歓迎です。
actionscript-3 - get 関数をオブジェクトとして参照する方法
Function
get 関数を、返される値としてではなく、オブジェクトとして参照したいと思います。
通常、次のように括弧なしで関数を参照するだけです。
しかし、get 関数の全体的なポイントは、括弧なしで関数を呼び出すことができるということです。そのため、これを行うと 0 が返されます。
foo
関数オブジェクトへの参照を取得する方法はありますか?
javascript - node.jsの例でファーストクラス関数とcsvモジュールイベントの使用法を理解していない
このコード スニペットのコードを理解するのに苦労しています。私はコメントして調査してきましたが、問題が発生しました。2 つの障害に遭遇しましたが、1 つは古い csv ライブラリに関係しています。コード スニペットは次のとおりです。
このコード スニペットの主な問題は、2 番目の関数に関係しています。彼らは関数を呼び出し元の関数に戻していますが、なぜresponse2console関数に2つのパラメーターがあるのか わかりませんが、市場調査関数で使用されているときに関数にパラメーターが渡されないようです. これらはデフォルト パラメータですか、それともダミー パラメータですか。それらは使用されているように見えるので、パラメータをどこかから取得する必要がありますか? それらは csvfile とヘッダーに対応していますか?
私の 2 番目の問題は、.on() 関数に関係しています。csvのドキュメントを見ましたが、これが何をするのかについてのコメントは見つかりませんでした。彼らはそれを使うだけのようです。さらに調査した結果、これは javascript または node.js のイベント関数であり、「レコード」はイベントの一種であるという結論に達しました。しかし、この「記録」イベントが何であるかについてのドキュメントはどこにも見つかりません。どこを見るべきか、または問題の助けについての提案をいただければ幸いです。
csv ドキュメント: http://www.adaltas.com/projects/node-csv/from.html
python - ファーストクラスの関数ではできないことで、python 関数デコレータでできることはありますか?
私は Python 関数デコレーターを理解しようとしていますが、これまでのところ、関数デコレーターがファースト クラス関数を使用して実行できなかったことを実行できるケースは見当たりません。
例として、logger decorator
は便利な関数デコレータの簡単な例としてよく挙げられます。
このデコレーターは、ログに記録したい関数と一緒に古典的に使用されます。
ただし、同じ結果を得るには、 func1 を定義して logger でラップするだけで済みます。
呼び出しlogged_fun2
は の呼び出しに似ていfun1
ます。さらに、 でラップfun2
すると、必要に応じて、ログを記録せずlogger
にオリジナルを呼び出すことができます。fun2
ファーストクラス関数を使用してできないデコレータでできることはありますか? それとも、関数をラップするためのシンタックス シュガーの形式としてデコレータを検討する方がよいでしょうか?