Haskell:複数のパラメーターを持つSortBy(生年月日)

債務

sortByを使用して、Y> M> Dの優先度に従って誕生日のリストを並べ替えようとしています。

ガードを入れ子にすることはできないので、私はこの種の醜い解決策を思いつきました:

sortBD (day1, month1, year1) (day2, month2, year2)
  | year1 < year2 = GT
  | year1 < year2 = LT   -- Typo: < should be >
  | year1 == year2 = if compare month1 month2 == EQ then compare day1 day2 else compare month1 month2

ただし、これは非網羅的なパターンのために例外を返します。

[編集]:同じ問題で問題が発生している他の人を救うために混乱:上記のコードの問題は、回答で指摘されているように、アプローチ自体ではなくタイプミスです。

ダニエル・ワーグナー

year1 > year2この行にタイプミスがあるため、このケースについては説明していません

  | year1 < year2 = GT

EQsとnon-を注意深く調整しようとする代わりにEQMonoidインスタンスを使用Orderingして結果を組み合わせることができます。

sortBD (d1, m1, y1) (d2, m2, y2)
    = compare y1 y2
   <> compare m1 m2
   <> compare d1 d2

さらに良いことに、タプルインスタンスはすでにこれを実行しているので、次のように再利用できます。

sortBD (d1, m1, y1) (d2, m2, y2) = compare (y1, m1, d1) (y2, m2, d2)

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

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

編集
0

コメントを追加

0

関連記事

分類Dev

apache isisの名前、姓、生年月日などの多くのパラメーター(クラスパラメーターのみ)について、同じことをどのように行いますか?

分類Dev

データベースに生年月日を追加する

分類Dev

Pythonでユーザーの生年月日を取得したい

分類Dev

複数のパラメーターを持つHaskellフィルター関数

分類Dev

php-日付をデータベースと比較します(生年月日)

分類Dev

最初の数桁の生年月日パンダを置き換えます

分類Dev

PostgreSQL:複数の日付パラメーターを持つ関数

分類Dev

TwitterOAutからユーザーの詳細を取得します(メール、生年月日、名前など)

分類Dev

生年月日を指定した年齢別のSQLグループの顧客

分類Dev

生年月日を使用した年齢変数の計算

分類Dev

Androidでの生年月日

分類Dev

生年月日までのレールストリング

分類Dev

正確な名前と生年月日を持つすべての顧客を選択します

分類Dev

マップを使用して複数のパラメーターを持つ関数を呼び出すHaskell

分類Dev

Haskell:複数のパラメータを持つデータ型の型を取得する方法( `Path ab = ..`など)

分類Dev

複数のパラメータを持つ React 関数

分類Dev

複数のパラメーターを持つMapStruct QualifiedByName

分類Dev

複数のパラメーターを持つJPA Criteria API

分類Dev

複数のパラメーターを持つAngularJS $ broadcast

分類Dev

複数のパラメーターを持つAngularJS $ broadcast

分類Dev

複数のパラメーターを持つLaraverFindOrNew

分類Dev

複数のパラメーターを持つcreateQueryBuilderとsetParameter?

分類Dev

複数のパラメーターを持つuseApiフック

分類Dev

複数の値を持つパラメーターPython

分類Dev

複数のパラメーターを持つParameterizedThreadStart

分類Dev

複数のパラメーターを持つpool.apply_async

分類Dev

複数のパラメーターを持つHttpRequestが迅速

分類Dev

複数のパラメータを持つ文字列の分割

分類Dev

検証エラーをスローせずにマングースで生年月日を保存する方法

Related 関連記事

  1. 1

    apache isisの名前、姓、生年月日などの多くのパラメーター(クラスパラメーターのみ)について、同じことをどのように行いますか?

  2. 2

    データベースに生年月日を追加する

  3. 3

    Pythonでユーザーの生年月日を取得したい

  4. 4

    複数のパラメーターを持つHaskellフィルター関数

  5. 5

    php-日付をデータベースと比較します(生年月日)

  6. 6

    最初の数桁の生年月日パンダを置き換えます

  7. 7

    PostgreSQL:複数の日付パラメーターを持つ関数

  8. 8

    TwitterOAutからユーザーの詳細を取得します(メール、生年月日、名前など)

  9. 9

    生年月日を指定した年齢別のSQLグループの顧客

  10. 10

    生年月日を使用した年齢変数の計算

  11. 11

    Androidでの生年月日

  12. 12

    生年月日までのレールストリング

  13. 13

    正確な名前と生年月日を持つすべての顧客を選択します

  14. 14

    マップを使用して複数のパラメーターを持つ関数を呼び出すHaskell

  15. 15

    Haskell:複数のパラメータを持つデータ型の型を取得する方法( `Path ab = ..`など)

  16. 16

    複数のパラメータを持つ React 関数

  17. 17

    複数のパラメーターを持つMapStruct QualifiedByName

  18. 18

    複数のパラメーターを持つJPA Criteria API

  19. 19

    複数のパラメーターを持つAngularJS $ broadcast

  20. 20

    複数のパラメーターを持つAngularJS $ broadcast

  21. 21

    複数のパラメーターを持つLaraverFindOrNew

  22. 22

    複数のパラメーターを持つcreateQueryBuilderとsetParameter?

  23. 23

    複数のパラメーターを持つuseApiフック

  24. 24

    複数の値を持つパラメーターPython

  25. 25

    複数のパラメーターを持つParameterizedThreadStart

  26. 26

    複数のパラメーターを持つpool.apply_async

  27. 27

    複数のパラメーターを持つHttpRequestが迅速

  28. 28

    複数のパラメータを持つ文字列の分割

  29. 29

    検証エラーをスローせずにマングースで生年月日を保存する方法

ホットタグ

アーカイブ