問題タブ [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.
haskell - ポイントフリースタイルで関数を書くための一般的なスキームは何ですか?
私は現在、 20 の中級 Haskell 演習に取り組んでいますが、これは非常に楽しい演習です。Functor
これには、型クラスand Monad
(およびFunctor
s とs を引数として取る関数)のさまざまなインスタンスを実装する必要がありますが、andMonad
のようなかわいらしい名前を付けて、実行していることを偽装します (興味深いコードを作成します)。Furry
Misty
私はこれのいくつかをポイントフリー スタイルで実行しようとしてきましたが、ポイントフル (?) 定義をポイントフリー定義に変換するための一般的なスキームがあるかどうか疑問に思いました。たとえば、 の型クラスは次のとおりですMisty
。
(関数unicorn
とbanana
はreturn
と>>=
であり、明らかでない場合に備えて)、これがapple
( に相当するflip ap
)の実装です。
演習の後半ではliftM
、liftM2
などのバージョンを実装します。私の解決策は次のとおりです。
さて、 (またはbanana1
と同等) の適切な定義により、無意味なスタイルで実装することができました。しかし、他の 3 つの関数では、パラメーターを使用する必要がありました。liftM
fmap
appleTurnover
私の質問は次のとおりです。これらのような定義を無意味な定義に変えるためのレシピはありますか?
powershell - Powershell 配列の各項目を選択して新しい配列にマップする
Powershell にファイル名の配列があり、それぞれにパスを追加して、新しい配列で結果を取得したいと考えています。
C# では、Linq を使用してこれを行うことができます...
しかし、Powershell でこれを行う慣用的な方法は何ですか? 使用できる foreach 構文があるようですが、もっと簡潔で機能的な方法が必要だと思います。
python - 高階関数とループ-実行時間とメモリ効率?
高階関数とラムダを使用すると、実行時間とメモリ効率が良くなりますか、それとも悪くなりますか?たとえば、リスト内のすべての数値を乗算するには:
vs
HOFバージョンには、コード行が少ない/機能的なアプローチを使用していることを除いて、ループバージョンよりも優れていますか?
編集:
必要な評判がないため、これを回答として追加することはできません。@DSMによって提案されたように、timeitを使用してループとHOFアプローチのプロファイルを作成しました。
そしてこれが私の結果です:
平均的なループアプローチでは、HOFを使用するよりも高速であるように思われます。
lambda - 関数適用を実装したラムダ計算式
次のラムダ計算式を見つけました。
つまり、これは引数 f を取り、引数 x を取り、x を f に適用した結果を生成する別の関数を返す関数です。上記の式の結果は (λ b . b) になります。
これは部分適用とカリー化を思い起こさせますが、「インサイド アウト」関数適用 (fx) が私の興味をそそりました。
その表現には、より深い理論的な意味がありますか?
sml - SML/NJ の高階関数
問題について助けを求めています。ML でリストと関数の両方を渡す関数を作成しようとしています。基本的に、プログラムが行うべきことは、リストを取得し、各要素を関数で実行することです。関数が true を返す場合、要素がリストに追加され、関数の実行が完了するとリストが返されます。これが私のコードです:
どんな助けでも大歓迎です。
haskell - Haskell の高階関数のヘルプが必要
このコードの問題は何ですか?
関数を除数付きaddNum
の入力として取り、答えを出力したいと思います。divideby
したがって、divideby
関数は高次関数として機能する必要があります。
このコードの問題は何ですか? 次のエラーが発生します。
haskell - これはHaskellの高階関数ですか?
シフトが高階関数かどうか知りたい。
haskell - Haskellの高階関数foldrを使って文字列の長さを計算する方法
Haskellの高階関数Foldrを使って文字列の長さを計算したい
次のエラーが発生します。このコードの問題は何ですか?
haskell - map や filter を別の関数内で使用すると、その関数は高次になりますか?
別の関数内で map や filter を使用すると、その関数は高階関数になりますか? 例えば:
removeSpaces
高階関数ですか?
haskell - Haskellで高階関数を持ち上げる
次のタイプの関数を作成しようとしています。
t
モナド変換子はどこにありますか。具体的には、これを行うことに興味があります。
私はいくつかのHaskellウィザードライブラリをいじりましたが、役に立ちませんでした。どうすればそれを正しくすることができますか、またはおそらくどこかに私が見つけられなかった準備ができた解決策がありますか?