圏論における「フィルター」とはどのような射ですか?

ポリメラーゼ

圏論では、filter操作は射と見なされますか?もしそうなら、それはどのような射ですか?例(Scala)

val myNums: Seq[Int] = Seq(-1, 3, -4, 2)

myNums.filter(_ > 0)
// Seq[Int] = List(3, 2) // result = subset, same type

myNums.filter(_ > -99)
// Seq[Int] = List(-1, 3, -4, 2) // result = identical than original

myNums.filter(_ > 99)
// Seq[Int] = List() // result = empty, same type
Bartosz Milewski

このような質問に答えるために、まずフィルタリング本質理解したいと思います。

たとえば、入力がリストであることは重要ですか?木をフィルタリングできますか?なぜだかわかりません!ツリーの各ノードに述語を適用し、テストに失敗したノードを破棄します。

しかし、結果の形はどうなるでしょうか?ノードの削除が常に定義されているとは限らないか、あいまいです。あなたはリストを返すことができます。しかし、なぜリストなのか?追加をサポートする任意のデータ構造が機能します。追加プロセスを開始するには、データ構造の空のメンバーも必要です。ですから、どんな単一のマグマでもかまいません。結合性を主張すると、モノイドが得られます。の定義を振り返るfilterと、結果はリストになります。これは確かにモノイドです。ですから、私たちは正しい方向に進んでいます。

これfilterは、いわゆる特殊なケースですFoldable。結果をモノイドに蓄積しながら折りたたむことができるデータ構造です。特に、述語を使用して、それがtrueの場合、シングルトンリストを出力することができます。または、falseの場合は、空のリスト(ID要素)。

カテゴリカルな答えが必要な場合、フォールドはカタモルフィズムの例であり、代数のカテゴリの射の例です。折りたたむ(再帰的な)データ構造(の場合はリストfilter)は、一部のファンクター(この場合はリストファンクター)の始代数であり、述語はこのファンクターの代数を定義するために使用されます。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

圏論における「フィルター」とはどのような射ですか?

分類Dev

ブール値だけを返すことになっている場合、フィルターはどのように条件を知るのですか?

分類Dev

フィルタは、別のフィルタの結果を論理積とどのように組み合わせることができますか?

分類Dev

グループから少なくとも1つの発射体がターゲットに当たった場合、グループごとに1回だけ関数を呼び出すにはどうすればよいですか?

分類Dev

どのようにtakeWhileは、フィルタは異なるのですか?

分類Dev

フィルタが特定の行とヘッダーを非表示にしないようにするにはどうすればよいですか?

分類Dev

より多くの引数を受け入れるnp.whereを取得して、>、<、および=;をフィルタリングするにはどうすればよいですか。>と<だけではありませんか?

分類Dev

フィルタギャラリーの画像にさまざまなホバーを付けるにはどうすればよいですか?

分類Dev

(関数型プログラミングのコンテキストでの)リフティングは圏論とどのように関連していますか?

分類Dev

SOLRで、フィールドが非格納および非索引付けになるのはなぜですか?

分類Dev

Windows 8がデフォルトで「マウスとキーボードセンター」になっている場合、マウスボタンのプロパティタブを見つけるにはどうすればよいですか?

分類Dev

anyMatchは、フィルタ+ FindFirstのような決定論的ですか?

分類Dev

FFMPEGの複雑なフィルターでフィルターされたオーディオを使用するにはどうすればよいですか?

分類Dev

動的型が宣言型とは異なるクラスフィールドのゲッターを作成するにはどうすればよいですか?

分類Dev

API呼び出しが必要な結果だけを返すように、フィルターを追加するにはどうすればよいですか?

分類Dev

Rのグループごとに1行だけになるようにデータを転置するにはどうすればよいですか?

分類Dev

Apache NiFiで多数のフローを管理、ソート、およびフィルタリングするにはどうすればよいですか?

分類Dev

FirebaseでGeoFireを使用してLatitudeおよびLongitudeという名前のフィールドを追加するにはどうすればよいですか?

分類Dev

リスコフの原則における議論の反変性はどのように機能するでしょうか?

分類Dev

圏論からの適用におけるマップ関数は何をしますか?

分類Dev

MongoDBアグリゲーションで、null値をフィールドに分け、他の値をフィールドとは異なるものにするにはどうすればよいですか?

分類Dev

グループ化するだけでなく、Mongoを使用して他のフィールドを表示するにはどうすればよいですか?

分類Dev

AVCodecContextの「extradata」フィールドにSPSおよびPPSデータを入力するにはどうすればよいですか?

分類Dev

C#およびMongoDB version = "2.2.3"のIMongoCollectionにフィルターを動的に追加するにはどうすればよいですか?

分類Dev

1つの列を複数の値でフィルタリングするにはどうすればよいですか(厳密なフィルター)?

分類Dev

現在の日付と昨日の日付でクロスフィルターをフィルタリングするにはどうすればよいですか?

分類Dev

rsyncの表示/非表示フィルタールールは包含/除外とどのように異なりますか?

分類Dev

主キーまたはIDフィールドのないテーブルで重複を見つけるにはどうすればよいですか?

分類Dev

実際の日付ではない平日フィールドと時刻フィールドを作成するにはどうすればよいですか?

Related 関連記事

  1. 1

    圏論における「フィルター」とはどのような射ですか?

  2. 2

    ブール値だけを返すことになっている場合、フィルターはどのように条件を知るのですか?

  3. 3

    フィルタは、別のフィルタの結果を論理積とどのように組み合わせることができますか?

  4. 4

    グループから少なくとも1つの発射体がターゲットに当たった場合、グループごとに1回だけ関数を呼び出すにはどうすればよいですか?

  5. 5

    どのようにtakeWhileは、フィルタは異なるのですか?

  6. 6

    フィルタが特定の行とヘッダーを非表示にしないようにするにはどうすればよいですか?

  7. 7

    より多くの引数を受け入れるnp.whereを取得して、>、<、および=;をフィルタリングするにはどうすればよいですか。>と<だけではありませんか?

  8. 8

    フィルタギャラリーの画像にさまざまなホバーを付けるにはどうすればよいですか?

  9. 9

    (関数型プログラミングのコンテキストでの)リフティングは圏論とどのように関連していますか?

  10. 10

    SOLRで、フィールドが非格納および非索引付けになるのはなぜですか?

  11. 11

    Windows 8がデフォルトで「マウスとキーボードセンター」になっている場合、マウスボタンのプロパティタブを見つけるにはどうすればよいですか?

  12. 12

    anyMatchは、フィルタ+ FindFirstのような決定論的ですか?

  13. 13

    FFMPEGの複雑なフィルターでフィルターされたオーディオを使用するにはどうすればよいですか?

  14. 14

    動的型が宣言型とは異なるクラスフィールドのゲッターを作成するにはどうすればよいですか?

  15. 15

    API呼び出しが必要な結果だけを返すように、フィルターを追加するにはどうすればよいですか?

  16. 16

    Rのグループごとに1行だけになるようにデータを転置するにはどうすればよいですか?

  17. 17

    Apache NiFiで多数のフローを管理、ソート、およびフィルタリングするにはどうすればよいですか?

  18. 18

    FirebaseでGeoFireを使用してLatitudeおよびLongitudeという名前のフィールドを追加するにはどうすればよいですか?

  19. 19

    リスコフの原則における議論の反変性はどのように機能するでしょうか?

  20. 20

    圏論からの適用におけるマップ関数は何をしますか?

  21. 21

    MongoDBアグリゲーションで、null値をフィールドに分け、他の値をフィールドとは異なるものにするにはどうすればよいですか?

  22. 22

    グループ化するだけでなく、Mongoを使用して他のフィールドを表示するにはどうすればよいですか?

  23. 23

    AVCodecContextの「extradata」フィールドにSPSおよびPPSデータを入力するにはどうすればよいですか?

  24. 24

    C#およびMongoDB version = "2.2.3"のIMongoCollectionにフィルターを動的に追加するにはどうすればよいですか?

  25. 25

    1つの列を複数の値でフィルタリングするにはどうすればよいですか(厳密なフィルター)?

  26. 26

    現在の日付と昨日の日付でクロスフィルターをフィルタリングするにはどうすればよいですか?

  27. 27

    rsyncの表示/非表示フィルタールールは包含/除外とどのように異なりますか?

  28. 28

    主キーまたはIDフィールドのないテーブルで重複を見つけるにはどうすればよいですか?

  29. 29

    実際の日付ではない平日フィールドと時刻フィールドを作成するにはどうすればよいですか?

ホットタグ

アーカイブ