タグ

HaskellとPrismに関するpoginのブックマーク (2)

  • Prismメモ - DebugIto's diary

    前回の続きで、今回はPrismについて調べたのでそれについて記す。(lensパッケージ バージョン4.7に基づく) 前回書いたように、PrismはTraversalの一種であり、全体データの中の0個もしくは1個の部分データに着目する。また、Prismは「部分データから全体データを復元することができる」という、Lensにはない特徴を持つ。(そのため、Prismでは「全体」と「部分」という言い方は不適切かもしれない) >>> (Right "hoge") ^. _Right "hoge" >>> "hoge" ^. re _Right Right "hoge" この、Prismの効果を「逆転」する関数であるreがどういう仕組みになっているか気になったので、lensのマニュアルやソースコードを読んだ。 Prismの型 Prismのデータ型は以下のようになっている。 type Prism s t

    Prismメモ - DebugIto's diary
  • Haskellでデータ構造を拡張する継承 -- IT専門質問の答え -- 彼山の知識

    C + +プログラマは、ここではHaskellを習得しようとしている.これはおそらく簡単な質問をお許し下さい.私は、3次元形状を表すプログラムを翻訳したい. C + +では私のようなものがあります: class Shape { public: std::string name; Vector3d position; }; class Sphere : public Shape { public: float radius; }; class Prism : public Shape { public: float width, height, depth; }; 私は計算のように、球を操作する方法だけを知っているよりハスケル(レコードを使用して?)私は(その名前と位置にアクセスするような)形状を操作する方法を知っているいくつかの機能を持つことができるように、、、他にこれを翻訳しようとして

  • 1