並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 7 件 / 7件

新着順 人気順

代数的データ型の検索結果1 - 7 件 / 7件

  • TypeScript の Discriminated Union と Haskell の代数的データ型 - 一休.com Developers Blog

    この記事は 一休.com Advent Calendar 2024 の15日目の記事です。 予定より早く書き上げてしまったので、フライングですが公開してしまいます。 TypeScript の Discriminated Union (判別可能な Union 型) を使うと、いわゆる「代数的データ型」のユースケースを模倣することができます。一休のような予約システム開発においては「ありえない状態を表現しない」方針で型を宣言するためによく利用されています。 「あり得ない状態を表現しない」という型宣言の方針については以下の URL が参考になります。 Designing with types: Making illegal states unrepresentable | F# for fun and profit このユースケースで Discriminated Union を使う場合、それは文字

      TypeScript の Discriminated Union と Haskell の代数的データ型 - 一休.com Developers Blog
    • Java で学ぶ 代数的データ型

      JJUG CCC 2025 Springの登壇資料です。

        Java で学ぶ 代数的データ型
      • Kotlinで学ぶ 代数的データ型

        関数型まつり(#fp_matsuri)の登壇資料です。

          Kotlinで学ぶ 代数的データ型
        • 代数的データ型でプログラムをSQL的にしよう

          F# のDiscriminated Unionは代数的データ型などという、なんか難しそうな呼ばれ方をする。本当はレコード型も合わせてだが、それは良い。 Discriminated Unionは、近年のプログラム言語で割と多くの言語が持つ機能になった。 SwiftのEnumのassociated value、Kotlinのsealed class、RustのEnumなどはだいたいDiscriminated Unionと言って良いだろう。 だが、全部の言語が持つ訳でもなく、活用度も言語によって大きく異なっているように思う。 代数的データ型は思考方法やプログラムの構成方法と結びついて活用されるものなので、 Enumに値も持てます、という説明だと、いまいちそうした活用に結びつかない。 特にKotlinのようにより高機能なものだと、 かえって代数的データ型として使うためには一定のサブセットに意図的に

          • TypeScript の Discriminated Union と Haskell の代数的データ型 - 一休.com Developers Blog

            この記事は 一休.com Advent Calendar 2024 の15日目の記事です。 予定より早く書き上げてしまったので、フライングですが公開してしまいます。 TypeScript の Discriminated Union (判別可能な Union 型) を使うと、いわゆる「代数的データ型」のユースケースを模倣することができます。一休のような予約システム開発においては「ありえない状態を表現しない」方針で型を宣言するためによく利用されています。 「あり得ない状態を表現しない」という型宣言の方針については以下の URL が参考になります。 Designing with types: Making illegal states unrepresentable | F# for fun and profit このユースケースで Discriminated Union を使う場合、それは文字

              TypeScript の Discriminated Union と Haskell の代数的データ型 - 一休.com Developers Blog
            • 代数的データ型と Combinatorial Species

              これは「Haskell Advent Calendar 2024」9日目の記事です。 代数的データ型は簡潔性を保ちながら型安全で表現力豊かなプログラムを記述するため欠かせない存在です。代数的データ型の原型は1966年にLandinが提案したISWIMに見られます。その後、1977年にNPLという関数型プログラミング言語に実装され、Standard MLやMiranda、Haskellに実装されていきました[1]。Haskellにおいて代数的データ型は型の 直和 と 直積 が表現でき、再帰的な定義 (再帰データ型)も可能です。 -- 直和型(Either a b と等価) data Sum a b = A a | B b -- 直積型(タプル (a, b) と等価) data Product a b = Product a b -- 再帰データ型の例 data List a = Nil |

                代数的データ型と Combinatorial Species
              • 代数的データ型 in Unity

                はじめに 代数的データ型というものを知り、少し使えるようになってきたので、そのメモ・Unityでの使いどころを考えてみます。 代数的データ型 代数的データ型は以下の2種類を同時に表現できるものになります。 直積型(Product Type) 直和型(Sum Type) 直積型 直積型は複数の型を組み合わせた型です。C#で何も考えずにクラス・構造体を作成すると直積型になります。 基本的にどのフィールドも値を持つことを期待して最初は作りますが、徐々に値がない場合もあることに気づくこともあるでしょう。 その場合は、nullを入れるかdefaultを入れるか等で対応します。

                  代数的データ型 in Unity
                1