タグ

HaskellとTypeClassesに関するnsyeeのブックマーク (6)

  • Orphan instances - maoeのブログ

    Haskellのorphan instanceが何者なのか、その意味するところをちゃんと理解してなかったので調べてみた。 orphan instancesとは何? 型クラスの定義ともデータ型の定義とも異なるモジュールで定義されたインスタンス宣言のこと 例: T.hsで定義されたデータ型Tについて、モジュールM.hsでinstance Show Tとインスタンス宣言されていたら、それはorphan instance。 このインスタンス宣言は、型クラスShowともデータ型Tとも異なるモジュールで宣言されているから。 orphan instancesはいいもん?わるもん? ケースバイケース 前提: Haskell 98では重複した*1インスタンス宣言を扱えない。 利点: ケースによってインスタンス宣言を差し替えられるように、複数のインスタンスを定義したい場合は、別モジュールに定義する(つまりor

    Orphan instances - maoeのブログ
  • 値コンストラクタを中置記法で! - Life is but a dream

    HaskellただいまRealクラスを探検ですが、そのソースの中に一つおもしろいものがあったので独立したエントリとして書いておきます。 Haskellで型を作るにはdataキーワードを使って以下のように書きますね。 data Ratio a = Construct a a -- 有理数を表す型 deriving (Eq) ここで、Ratioは型コンストラクタ(type constructor)、Constructは値コンストラクタ(value constructor)です。 私たちは、 Ratio a でもって始めてRatio a型とすることができるわけです。 Ratio Int型を次のように作るとします。 Construct 1 3 -- means 1/3 Construct 11 13 -- means 11/13 Construct 1 3 == Construct 1 3 --

  • Haskellの勉強 - 型安全なイベント - Faith and Brave - C++で遊ぼう

    Type-safe events このエントリを読んでわかったことのメモ。 以下のような感じで、異なる型のイベントを同じように扱いたい。 data Ping = Ping Int | Pong Int data Log = Warn String | Info String main = do fire $ Warn "Starting the engines!" fire $ Ping 100 fire $ Info "Engines has been started." fire $ Ping 200 Type OperatorsとData.Generics 代数データ型はオープンではないので、Ping型とLog型を合わせた代数データ型を作るのはたいへん。 Haskell PlatformにあるData.Genericsには複数の型を足しあわせた型リスト(variant)を作る:+:型

    Haskellの勉強 - 型安全なイベント - Faith and Brave - C++で遊ぼう
  • オブジェクト指向から理解する型クラス - think and error

    Haskell Advent Calendar2011 2日目です。 もう42時になってしまいました...さすがに遅いですね。 Haskellと言えば型クラス オブジェクト指向のクラスとHaskellの型クラスは違いますよ的な説明は見ますがどう違うか比べた情報が無い オブジェクト指向知っている人からの理解を簡単にすればHaskell理解する人が増えますね! という目論見の元にスライドを作りましたが、ユーザ視点が足りずに混乱させてしまったかも知れません。 Programming haskell chapter10 View more presentations from Ruicc Rail Haskell Advent Calendar明日はid:melponさんです。

    オブジェクト指向から理解する型クラス - think and error
  • jaspervdj - Type-safe events

    Type-safe event-based programming in Haskell Published on October 16, 2011 under the tag haskell This is some code I wrote a while ago. It is (mostly) based upon Data Types a la Carte, a great pearl by Wouter Swierstra. It uses some ideas discussed in this paper to create a type-safe, extensible event-based framework in Haskell. This blogpost is written in Literate Haskell, meaning you should be a

  • Simon Peyton Jones先生招待講演について - Preferred Networks Research & Development

    村主です。 2011年9月21日に、ICFP2011で来日していたSimon Peyton-Jones先生を弊社にお招きして、Glasgow Haskell Compilerの最新事情について講演をしていただきました。当日は体が浮きそうなほどの風が吹く大嵐でしたが、多くの人の協力のおかげで無事に終えることができ、感謝しています。 サイモン先生からスライドを分けてもらったので、講演会の動画とあわせて読む形で、記事にまとめてみました。Haskell/GHCのさまざまなトピックをカバーするこの講演、みなさんのHaskell勉強の一助となれば幸いです。 サイモン先生に「君たちも何か話してよ」と頼まれたので、僕が流体計算言語Paraiso(リンク先にスライドあり)の話をまずしています。 31:46 頃からサイモン先生のトークが始まります。まずはHaskell Communities and Acti

    Simon Peyton Jones先生招待講演について - Preferred Networks Research & Development
  • 1