問題タブ [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.
c# - 高次リスト操作の名前変更の理由
C# で高次リスト操作の名前を変更した理由は何ですか? (例: map
-> Select
、filter
-> Where
、fold
-> Aggregate
)
python - 高階関数を Python から Haskell に変換する
次のコードがあります。
重要な部分: Pleat は任意の関数と任意のシーケンスを取り、そのシーケンスの最初の一握りの要素をパラメーターとして受け取った関数に渡します。
Haskellでこれを行う方法はありますか、それとも私は夢を見ていますか?
search - 検索ツリーでマップとフォールドを定義するにはどうすればよいですか?
次のように定義された検索ツリーがあります。
mapStree という 2 つの関数を定義する必要があります。
とfoldStree:
何が起こっているのか完全には理解できず、これを行う方法もわかりません。
scala - Scala コンパイラは、暗黙的で匿名のクラスが使用されている場合、私のメソッドは再帰的であると言います
のようなコードを書けるようになりたい
だから私はそれを暗黙的にできると思った。
Scala REPL で次のコードを実行すると、正しく定義されます
しかし、コンパイルしようとすると、
エラーで失敗します
違いはなんですか?私は何を間違っていますか?
c# - Functional C# - アクションの使用または返却
C# での障害処理を改善するためにネットを閲覧したところ、次のような実装戦略を見つけました。最初のものは私にとって自然ですが、他の実装はその利点が何であるか確信が持てませんか?
1)
2)
C# で高次関数を開発する場合、2) は優先される戦略ですか?
そして、あるアプローチが他のアプローチよりも効率的かどうか疑問に思っています。
c# - C# で高階関数のパラメーター名を定義する方法
C# では、より高次の関数を作成することができます。関数g
を引数として取る関数。f
関数を指定し、その機能を拡張する別の関数を返すような関数を作成したいとします。返された拡張メソッドの引数名を定義するにはどうすればよいですか? 動機は、私が一般的に高次のメソッドを扱っていることであり、その中には新しいメソッドを生成するものもあります..そして、これらにはパラメーター名などが付けられていないため、使用が難しい場合があります。
g
C# でおよびf
それぞれを定義する方法を示す例:
T
を引数として取り、 を返すメソッドを拡張できるメソッド Extend を定義しますS
。
その後、メソッドを変更せずにクラスのメソッドを拡張できます。
残念ながら、利用可能な情報は のみであるため、引数名positiveNumber
は利用できなくなりましたFunc<int, int> Calc
。それは、入力して拡張メソッドを使用するときですnew Calc2().Calc(-1)
。実際、私の引数が間違っているという IDE からの助けは得られません。
a を定義してこれにキャストできればいいのですdelegate
が、これは不可能です。
助言がありますか?
functional-programming - OCamlのfold_tree
ご存知かもしれませんが、OCamlにはfold_left、fold_right、filterなどの高階関数があります。
関数型プログラミングの私のコースでは、fold_treeという名前の関数が導入されました。これは、リストではなく(バイナリ)ツリーにあるfold_left/rightのようなものです。次のようになります。
ツリーは次のように定義されます。
OK、これが私の質問です:fold_tree関数はどのように機能しますか?いくつか例を挙げて、人間の言葉で説明してもらえますか?
language-agnostic - この高階関数に名前はありますか?
このパターンは私のコードやライブラリのいたるところに見られますが、どこにも見つけることができる名前や抽象化はないようです。
例 (疑似コード)
基本的に: 値と、その値を変換する関数を受け取ります。値のコピーを作成し、変換して返します。
実際の例 (C++)
基本的に、インプレース関数 (副作用あり) があり、そこからアウトオブプレース関数 (副作用なし) を作成します。
このパターンに名前はありますか?それを使用するライブラリまたは言語を知っていますか? 明らかに関数型言語は、そもそも参照的に不透明な関数を持っていないため、それを使用しません。
higher-order-functions - 高階関数を使用したWebプログラミング
私たちはクラスで高階関数を学んでおり、教授はそれらがWebプログラミングに役立つ可能性があると述べました。それがどのような場合に当てはまるのかわからないので、一般的なWebプログラミングタスクで高階関数を使用した経験がある人はいないか、どのような状況で役立つのか疑問に思いました。
私は本を読みましたが、ウェブプログラミングについては触れられていませんでした。教授が話題から外したことだと思いますが、少し興味をそそられました。
ありがとう!
types - 高階関数の種類
高階関数に(私が思うに)正しい型を指定すると、OCamlコンパイラはその関数の2回目の使用を拒否します。
コード
次のエラーメッセージが表示されます
したがって、の最初の使用法はf
、最初のパラメータのタイプをに固定しているようint -> string
です。理解できました。しかし、私が得られないのは、の型制限を省略f
すると問題が修正されるということです。
f
また、グローバルスコープに移行すると、問題も修正されます。
最初の例がコンパイルされないのに、後の例はコンパイルされるのはなぜですか?