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

python - Pythonの要素の合計によるリストのリストの最大値の検索

Pythonで、リストのリストでmaximumBy (テスト用の比較関数を使用する高階関数)を実行する慣用的な方法は何ですか?ここで、比較したいのはリストの合計です。

Haskellの実装と出力例は次のとおりです。

そして、完全を期すために、これらの基本ライブラリ関数の実装(reduceなどを使用したい場合:)

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

haskell - フォールドマップを使用してこのHaskellの問題をどのように解決しますか?

数値のリストを指定すると、各数値がその値と重複したリストを返す関数レプリケートを定義します。折り目を使用して、地図を作成し、

..>レプリケート[5,1,3,2,8,1,2]

出力:[5,5,5,5,5,1,3,3,3,2,2,8,8,8,8,8,8,8,8,1,2,2]

リスト内包表記と再帰を使用してこれを理解しました。

しかし、これを行うためにどのようにfoldとmapを使用しますか?これまでのところ、次のようになっています。レプリケートn = map(foldl1(take n(repeat n))n)nこれは明らかに間違っていますが、私は近いと思います。

だからどんな助けでもいいでしょう、ありがとう!

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

c++ - C++の高階関数«フィルター»

filterC++で高階関数を書きたかったのです。私がこれまでに思いついたコードは次のとおりです。

ただし、このコードをコンパイルすると、理解できない次のエラーメッセージが表示されるため、削除できます。

ここで私が間違っていることと、私が望む種類の高階ポリモーフィズムを実現するための正しい方法を教えてください。

ありがとう。

編集:

みんなありがとう。これがあなたの提案を適用した後に私が得た新しいコードです(そしてそれは今うまくいきます、イェーイ!)

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

haskell - Haskell FlatMap

私はHaskellに興味のある初心者で、フラットマップ(>> =)を自分で実装して理解を深めようとしています。現在私は持っています

これは「マップ」部分を実装しますが、「フラット」は実装しません。
私が行った変更のほとんどは、がっかりし、かなり情報がないという結果になります

エラー。

私は何が欠けていますか?

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

f# - F# の高次プロパティ アクセサー

プロトタイプのタプルをレコードにアップグレードしました。いつか本当のクラスになるかもしれません。それまでの間、次のようなコードを翻訳したいと思います。

これに:

Description : Example -> string問題は、Example レコードを宣言したときに関数を取得できると思っていたのに、取得できなかったことです。私は少し突っ込んでクラスのプロパティを試しましたが、それもうまくいきません。ドキュメントに何かが欠けているだけですか、それとも高次のアクセサーを手動で作成する必要がありますか? (それが私が現在使用している回避策です。)

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

scala - Scala ActionListener / 無名関数型の不一致

http://www.codecommit.com/blog/scala/scala-for-java-refugees-part-6の高階関数の例にあるものと同様のコードを実装しようとしています。

以下につながる

これは、少なくとも私のシステムの Scala コンパイラ バージョン 2.7.6.final には当てはまります。匿名のActionListenerを明示的に実装するJavaスタイルの方法で、私が望むものを達成することができます。

私の知る限り、Scala はダックタイピングを使用して、この ActionListener の明示的な実装を不要にすることができるはずです。では、なぜここで機能しないのですか?この時点で、ダックタイピングの実際の経験はほとんどありません。

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

haskell - 一般的な再帰パターン

Haskellの高階関数に慣れてきました。通常、再帰の明示的なパターンを、マップ、フォールド、スキャンなどの関数に置き換えることができます。ただし、高階関数を使用して表現する方法がわからない次の再帰パターンに遭遇することがよくあります。

たとえば、私が分析タブローを代表しているとしましょう。次に、次のようなデータ型を作成します。

sのリストをExprタブロー構造に変換する場合は、次のような関数部分が必要です。

ここで、3つのオプションが表示されます。(1)タブローとリストを指定して、タブローの次のブランチをSor N(または、、Bただしその場合は無視します)にするかどうかを決定する関数を作成します。(2)高階関数を使用してf;の再帰パターンをカプセル化します。(3)のような関数を使用しますf

最良の選択肢は何でしょうか?

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

php - キーの配列に基づいて配列のサブセットを取得する

配列のサブセットを取得するためにこの関数を書きました。PHPには、このための組み込み関数がありますか。ドキュメントで見つけられません。車輪を再発明するのはもったいないようです。

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

c++ - C++ の「フィルター」高階関数

C++ 標準ライブラリや Boost にはfilter、関数型言語に見られる関数に似たものがありますか?

私が見つけた最も近い機能はstd::remove_copy_if、私が望むものとは逆のことをしているようです。私の述語の否定されたバージョンを取得する関数はありますか( Haskellboost::lambdaと同様)? not述語を否定して、それを使用することができましstd::remove_copy_ifた。

filterC++ で関数を記述する方法を尋ねているわけではないことに注意してください。標準ライブラリやBoostがすでにそのような機能を提供しているかどうかを尋ねているだけです。

前もって感謝します。

0 投票する
16 に答える
2311 参照

python - この(新しい?)高階関数を何と呼びますか?

高階関数の新しいアイデアだと思うものに名前を付けようとしています。重要な部分として、ここにPythonとHaskellのコードがあり、概念を示しています。これについては後で説明します。

Python:

Haskell:

推測できるかもしれませんが、シーケンスは繰り返され、渡される関数のパラメーターとして隣接する要素を利用し、結果を新しいシーケンスに投影します。それで、誰かが私たちが作成した機能を見たことがありますか?これは、機能コミュニティの人々にはまったくなじみがありますか?そうでない場合、私たちはそれを何と名付けますか?

プリーツが勝ちます!