タグ

関連タグで絞り込む (0)

  • 関連タグはありません

タグの絞り込みを解除

oopとhaskellに関するemonkakのブックマーク (5)

  • Haskellでいかに多態を表すか - モナドとわたしとコモナド

    オブジェクト指向を行使する心 ではオブジェクト指向の必要性と仕組みについて議論した。 インスタンスは言語によって様々な実装方法があるが、大きく分けて「クラス(処理)のインデックス」か「処理そのもの」のどちらかがインスタンスの内部に隠れている。 と述べたが、Haskellの場合、クラスのインデックスに基づいた表現では、インターフェイスは型クラス、クラスはインスタンス、インスタンスは存在量化された型の値に対応する。…といってもややこしいことこの上ないので、実装例を考えてみよう。 まず、問題となっている愚直な実装は、Haskellではこんな感じだ。 data World = World { … } data SceneId = Menu | Map | Battle draw :: SceneId -> World -> IO World draw Menu = … draw Map = … d

    Haskellでいかに多態を表すか - モナドとわたしとコモナド
  • Haskellオブジェクト指向に触れてみよう〜中級編〜 - Creatable a => a -> IO b

    PRITZサラダ味は神、異論は認めない。 はいどうも、直接題に入ったら負けだと思っているタイプのHaskeller、ちゅーんさんですこんにちは。 今日も前回に引き続き、「Haskellでオブジェクト指向」と題しまして、objectiveを紹介したいと思います。 題に入る前に 前回の記事に、objective開発者の@fumievalさんからコメント頂きました。 最新のobjectiveでは`stateful handle s where handle` …の代わりに、 {-# LANGUAGE LambdaCase #-} stringObject :: String -> Object StringObject IO stringObject s = s @~ \case GetString -> get SetString s -> put s PrintString -> get

    Haskellオブジェクト指向に触れてみよう〜中級編〜 - Creatable a => a -> IO b
  • Haskellオブジェクト指向に触れてみよう〜初級編〜 - Creatable a => a -> IO b

    RITZクラッカーは神、異論は認めない。 はいどうも、直接題に入ったら負けだと思っているタイプのHaskeller、ちゅーんさんですこんにちは。 今日は、「Haskellでオブジェクト指向」と題しまして、objectiveというライブラリを紹介したいと思います。 いんとろだくしょん objectiveは日人によって開発されたHaskellでオブジェクト指向を行うためのライブラリです。いちおうまだ研究段階といった感じではありますが、 色々といじくり回してみた限り、かなり期待が持てる内容になっているため、紹介します。 近い将来には、Lensくらいには手軽に、 Haskellプロジェクトにオブジェクト指向プログラミングを導入できそうです。 手っ取り早く実装レベルで知りたい人は以下の日語の論文を読むとよいでしょう。 http://fumieval.github.io/papers/ja/20

    Haskellオブジェクト指向に触れてみよう〜初級編〜 - Creatable a => a -> IO b
  • objective

    objective Paper: https://fumieval.github.io/papers/en/2015-Haskell-objects.html This package provides composable objects and instances. Introduction The primal construct, Object, models object-oriented objects. Object f g represents an object. newtype Object f g = Object { runObject :: forall x. f x -> g (x, Object f g) } An object interprets a message f a and returns the result a and the next obj

  • Haskellでの合成可能なオブジェクトの構成とその応用

    Haskellでの合成可能なオブジェクトの構成とその応用 木下郁章, 山和彦, 2015 Haskellで状態を管理する際は、 一般的に代数データ型や型クラスが用いられるが、 データが拡張できないか、動的な性質を持たない。 そのためHaskellは、 複雑な状態を扱う問題領域には適していないと考えられてきた。 一方で、一般的なオブジェクト指向言語では、 オブジェクトを提供することでこの問題領域で成功を収めている。 論文では、Haskellの言語仕様を変更することなしに、 オブジェクト指向言語から着想を得たオブジェクトを実現する。 論文で提案するオブジェクトは圏を構成し、合成を用いて継承を表現できる。 また、終了する運命にあるオブジェクトやストリーミングなどに応用でき、 複雑な状態を扱うゲームの実装にも使われている。 論文をダウンロード(PDF) PPL 2015 発表スライド ここに

  • 1