問題タブ [higher-order-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.

0 投票する
4 に答える
595 参照

haskell - Haskellでラムダフォームが必要なのはいつですか?

私は Haskell の初心者であり、関数型プログラミングの比較的初心者です。他の (Haskell 以外の) 言語では、ラムダ形式が非常に便利なことがよくあります。

たとえば、スキームでは次のようになります。

(関数 f 上で) クロージャを作成して、導関数 (値 x、間隔 h) を近似します。ただし、ラムダ形式のこの使用法は、部分的な適用のため、Haskell では必要ないようです。

Haskellでラムダ形式が必要な例は何ですか?

編集:「クロージャー」を「ラムダ形式」に置き換えました

0 投票する
3 に答える
111 参照

function - 一部のプログラミング言語は、関数と関数ポインターをどのように区別しますか?

私は主に関数型プログラミング言語について話している。たとえば、地図に関するウィキペディアの記事には、Haskell風の言語でこの例があります。

map square [1,2,3,4,5]

squareパーサー/コンパイラーは、関数自体を呼び出そうとせずに、関数をmap高階関数として渡したいことをどのように認識しますか?静的型付けを使用する言語の場合、式square [1,2,3,4,5]は明らかにコンパイルされませんが、コンパイラーは実際にそれを使用して、それが私が意図したものではないと判断しますか?

または、これはウィキペディアの悪い例であり、より良い例はmap &square [1,2,3,4,5](Cスタイルの関数参照を使用して)次のようになりますか?

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

ruby - Rubyのメソッドにブロックを渡す

生成された(高階関数)をメソッドからrubyメソッドに渡したいのですが。このようなもの

エラーが発生します

どうすればこのようなことを達成できますか?

0 投票する
7 に答える
48553 参照

python - 関数をn回繰り返す方法

私はPythonで次のような関数を書き込もうとしています:

ここfで、は1つの引数を取りn、正の整数である関数です。

たとえば、正方形を次のように定義した場合:

そして私は電話しました

これは3、2回二乗します。

0 投票する
4 に答える
275 参照

python - シーケンス内の用語を追加/乗算するための一般的な関数を作成しようとしています

Pythonで4つの引数を持つ関数を書こうとしています

ここで、operation は関数、start はシーケンスの開始番号、n はシーケンスの最後の番号、term はシーケンス内の項を操作する関数です。

例えば

2、3、4、...、10 の 2 乗の合計を返します

とすれば:

0 投票する
4 に答える
3933 参照

python - Pythonのシーケンスの最初のn項の積

1 つの引数 (数値) を取り、その数値の階乗を返す関数を作成しようとしています。

たとえば、f(5) は 1*2*3*4*5 を返します。

私がこれまでに持っているのは

しかし、項が引数を1つだけ取るようにすることは可能ですか?

0 投票する
2 に答える
9040 参照

recursion - fold_left/rightを使用してOCamlのリストを反転する

更新-解決策

彼の助けをくれたjacobmのおかげで、私は解決策を思いついた。


私はOCaml(クラス用)での再帰のさまざまな方法について学び、いくつかの演習では、さまざまな再帰スタイルを使用してリストを逆にする関数を書いています。

今、私はを使って逆関数を書き込もうとしていますList.fold_leftが、行き詰まっていて理解できません。折りたたみを使用してこの逆関数をどのように記述しますか?

また、関数型プログラミング、さまざまなタイプの再帰、高階関数などについての参考資料があれば、リンクをいただければ幸いです:)

0 投票する
5 に答える
7551 参照

function - 結果が安定するまで関数を繰り返し適用する

simplify'結果が「安定」するまで関数を繰り返し適用したい(つまりsimplify'(x) == x):

これは私にとって一般的な問題のようです。よりエレガントなソリューションはありますか?

更新: はるかに簡単な解決策を見つけましたが、より洗練された解決策を探しています :)

0 投票する
2 に答える
949 参照

scala - 関数が期待される場所でコンストラクターを使用する

Int引数として2つの単純なクラスを持つ:

私は言うことができます:

これは正常に機能し、もう少し冗長に相当します。

ただしBar、(ケースクラスではないため?)同じ構成で使用することはできません。

コンストラクターを参照し、eta拡張を利用するための特別な構文はありますか?List(1,2,3) map {new Bar(_)}に比べて少し冗長に見えFooます。

0 投票する
8 に答える
73093 参照

scala - ScalaでのfoldLeftとreduceLeftの違い

との基本的な違いを学びましfoldLeftreduceLeft

foldLeft:

  • 初期値を渡す必要があります

reduceLeft:

  • コレクションの最初の要素を初期値として取ります
  • コレクションが空の場合は例外をスローします

他に違いはありますか?

同様の機能を持つ2つのメソッドがある特定の理由はありますか?