問題タブ [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 に答える
220 参照

c# - 高次リスト操作の名前変更の理由

C# で高次リスト操作の名前を変更した理由は何ですか? (例: map-> Selectfilter-> Wherefold-> Aggregate)

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

python - 高階関数を Python から Haskell に変換する

次のコードがあります。

重要な部分: Pleat は任意の関数と任意のシーケンスを取り、そのシーケンスの最初の一握りの要素をパラメーターとして受け取った関数に渡します。

Haskellでこれを行う方法はありますか、それとも私は夢を見ていますか?

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

search - 検索ツリーでマップとフォールドを定義するにはどうすればよいですか?

次のように定義された検索ツリーがあります。

mapStree という 2 つの関数を定義する必要があります。

とfoldStree:

何が起こっているのか完全には理解できず、これを行う方法もわかりません。

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

scala - Scala コンパイラは、暗黙的で匿名のクラスが使用されている場合、私のメソッドは再帰的であると言います

のようなコードを書けるようになりたい

だから私はそれを暗黙的にできると思った。

Scala REPL で次のコードを実行すると、正しく定義されます

しかし、コンパイルしようとすると、

エラーで失敗します

違いはなんですか?私は何を間違っていますか?

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

c# - Functional C# - アクションの使用または返却

C# での障害処理を改善するためにネットを閲覧したところ、次のような実装戦略を見つけました。最初のものは私にとって自然ですが、他の実装はその利点が何であるか確信が持てませんか?

1)

code>

2)

C# で高次関数を開発する場合、2) は優先される戦略ですか?

そして、あるアプローチが他のアプローチよりも効率的かどうか疑問に思っています。

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

c# - C# で高階関数のパラメーター名を定義する方法

C# では、より高次の関数を作成することができます。関数gを引数として取る関数。f関数を指定し、その機能を拡張する別の関数を返すような関数を作成したいとします。返された拡張メソッドの引数名を定義するにはどうすればよいですか? 動機は、私が一般的に高次のメソッドを扱っていることであり、その中には新しいメソッドを生成するものもあります..そして、これらにはパラメーター名などが付けられていないため、使用が難しい場合があります。

gC# でおよびfそれぞれを定義する方法を示す例:

Tを引数として取り、 を返すメソッドを拡張できるメソッド Extend を定義しますS

p>

その後、メソッドを変更せずにクラスのメソッドを拡張できます。

p>

残念ながら、利用可能な情報は のみであるため、引数名positiveNumberは利用できなくなりましたFunc<int, int> Calc。それは、入力して拡張メソッドを使用するときですnew Calc2().Calc(-1)。実際、私の引数が間違っているという IDE からの助けは得られません。

a を定義してこれにキャストできればいいのですdelegateが、これは不可能です。

助言がありますか?

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

functional-programming - OCamlのfold_tree

ご存知かもしれませんが、OCamlにはfold_left、fold_right、filterなどの高階関数があります。

関数型プログラミングの私のコースでは、fold_treeという名前の関数が導入されました。これは、リストではなく(バイナリ)ツリーにあるfold_left/rightのようなものです。次のようになります。

ツリーは次のように定義されます。

OK、これが私の質問です:fold_tree関数はどのように機能しますか?いくつか例を挙げて、人間の言葉で説明してもらえますか?

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

language-agnostic - この高階関数に名前はありますか?

このパターンは私のコードやライブラリのいたるところに見られますが、どこにも見つけることができる名前や抽象化はないようです。

例 (疑似コード)

基本的に: 値と、その値を変換する関数を受け取ります。値のコピーを作成し、変換して返します。

実際の例 (C++)

基本的に、インプレース関数 (副作用あり) があり、そこからアウトオブプレース関数 (副作用なし) を作成します。

このパターンに名前はありますか?それを使用するライブラリまたは言語を知っていますか? 明らかに関数型言語は、そもそも参照的に不透明な関数を持っていないため、それを使用しません。

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

higher-order-functions - 高階関数を使用したWebプログラミング

私たちはクラスで高階関数を学んでおり、教授はそれらがWebプログラミングに役立つ可能性があると述べました。それがどのような場合に当てはまるのかわからないので、一般的なWebプログラミングタスクで高階関数を使用した経験がある人はいないか、どのような状況で役立つのか疑問に思いました。

私は本を​​読みましたが、ウェブプログラミングについては触れられていませんでした。教授が話題から外したことだと思いますが、少し興味をそそられました。

ありがとう!

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

types - 高階関数の種類

高階関数に(私が思うに)正しい型を指定すると、OCamlコンパイラはその関数の2回目の使用を拒否します。

コード

次のエラーメッセージが表示されます

したがって、の最初の使用法はf、最初のパラメータのタイプをに固定しているようint -> stringです。理解できました。しかし、私が得られないのは、の型制限を省略fすると問題が修正されるということです。

fまた、グローバルスコープに移行すると、問題も修正されます。

最初の例がコンパイルされないのに、後の例はコンパイルされるのはなぜですか?