問題タブ [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 投票する
5 に答える
623 参照

haskell - ポイントフリースタイルで関数を書くための一般的なスキームは何ですか?

私は現在、 20 の中級 Haskell 演習に取り組んでいますが、これは非常に楽しい演習です。Functorこれには、型クラスand Monad(およびFunctors とs を引数として取る関数)のさまざまなインスタンスを実装する必要がありますが、andMonadのようなかわいらしい名前を付けて、実行していることを偽装します (興味深いコードを作成します)。FurryMisty

私はこれのいくつかをポイントフリー スタイルで実行しようとしてきましたが、ポイントフル (?) 定義をポイントフリー定義に変換するための一般的なスキームがあるかどうか疑問に思いました。たとえば、 の型クラスは次のとおりですMisty

(関数unicornbananareturn>>=であり、明らかでない場合に備えて)、これがapple( に相当するflip ap)の実装です。

演習の後半ではliftMliftM2などのバージョンを実装します。私の解決策は次のとおりです。

さて、 (またはbanana1と同等) の適切な定義により、無意味なスタイルで実装することができました。しかし、他の 3 つの関数では、パラメーターを使用する必要がありました。liftMfmapappleTurnover

私の質問は次のとおりです。これらのような定義を無意味な定義に変えるためのレシピはありますか?

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

powershell - Powershell 配列の各項目を選択して新しい配列にマップする

Powershell にファイル名の配列があり、それぞれにパスを追加して、新しい配列で結果を取得したいと考えています。

C# では、Linq を使用してこれを行うことができます...

しかし、Powershell でこれを行う慣用的な方法は何ですか? 使用できる foreach 構文があるようですが、もっと簡潔で機能的な方法が必要だと思います。

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

python - 高階関数とループ-実行時間とメモリ効率?

高階関数とラムダを使用すると、実行時間とメモリ効率が良くなりますか、それとも悪くなりますか?たとえば、リスト内のすべての数値を乗算するには:

vs

HOFバージョンには、コード行が少ない/機能的なアプローチを使用していることを除いて、ループバージョンよりも優れていますか?

編集:

必要な評判がないため、これを回答として追加することはできません。@DSMによって提案されたように、timeitを使用してループとHOFアプローチのプロファイルを作成しました。

そしてこれが私の結果です:

平均的なループアプローチでは、HOFを使用するよりも高速であるように思われます。

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

lambda - 関数適用を実装したラムダ計算式

次のラムダ計算式を見つけました。

つまり、これは引数 f を取り、引数 x を取り、x を f に適用した結果を生成する別の関数を返す関数です。上記の式の結果は (λ b . b) になります。

これは部分適用とカリー化を思い起こさせますが、「インサイド アウト」関数適用 (fx) が私の興味をそそりました。

その表現には、より深い理論的な意味がありますか?

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

sml - SML/NJ の高階関数

問題について助けを求めています。ML でリストと関数の両方を渡す関数を作成しようとしています。基本的に、プログラムが行うべきことは、リストを取得し、各要素を関数で実行することです。関数が true を返す場合、要素がリストに追加され、関数の実行が完了するとリストが返されます。これが私のコードです:

どんな助けでも大歓迎です。

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

haskell - Haskell の高階関数のヘルプが必要

このコードの問題は何ですか?

関数を除数付きaddNumの入力として取り、答えを出力したいと思います。dividebyしたがって、divideby関数は高次関数として機能する必要があります。

このコードの問題は何ですか? 次のエラーが発生します。

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

haskell - これはHaskellの高階関数ですか?

シフトが高階関数かどうか知りたい。

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

haskell - Haskellの高階関数foldrを使って文字列の長さを計算する方法

Haskellの高階関数Foldrを使って文字列の長さを計算したい

次のエラーが発生します。このコードの問題は何ですか?

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

haskell - map や filter を別の関数内で使用すると、その関数は高次になりますか?

別の関数内で map や filter を使用すると、その関数は高階関数になりますか? 例えば:

removeSpaces高階関数ですか?

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

haskell - Haskellで高階関数を持ち上げる

次のタイプの関数を作成しようとしています。

tモナド変換子はどこにありますか。具体的には、これを行うことに興味があります。

私はいくつかのHaskellウィザードライブラリをいじりましたが、役に立ちませんでした。どうすればそれを正しくすることができますか、またはおそらくどこかに私が見つけられなかった準備ができた解決策がありますか?