最近不眠症ぎみなので、羊を数えるプログラムを作ってみた。Sheep という新しいデータ型を定義するには data 宣言を行う。data 宣言のあとに来るのが型コンストラクタで、data 宣言文の = の右側に来るのがデータ・コンストラクタだ。新しい型を定義してもそのままでは show 関数で表示可能な文字列に変換できない。show 関数をオーバーライドして定義するのが面倒くさい時はとりあえず deriving を使っておくと良い。
羊をかぞえるプログラム(sheep.hs) data Sheep = Sheep deriving (Show) sheep = Sheep:sheep 実行例: Main> take 10 sheep [Sheep,Sheep,Sheep,Sheep,Sheep,Sheep,Sheep,Sheep,Sheep,Sheep] しかし、show 関数でデータを文字列に変換する時に自前のものを使いたいときは、instance 宣言文を作る。Sheep 型を Show クラスのインスタンスとして登録し、show 関数をオーバーライドして定義する。 羊をかぞえるプログラム(sheep2.hs) data Sheep = Sheep instance Show Sheep where show Sheep = "(^o^)" sheep = Sheep:sheep 実行例: Main> take 10 sheep [(^o^),(^o^),(^o^),(^o^),(^o^),(^o^),(^o^),(^o^),(^o^),(^o^)] ユーザ定義のデータ型をつくるときは、deriving (Show) か instance Show Sheep where .. でデータを表示可能に設定しておかなければならない。
by tnomura9
| 2009-09-13 22:33
| Haskell
|
Comments(0)
|
カテゴリ
新型コロナウイルス 主インデックス Haskell 記事リスト 圏論記事リスト 考えるということのリスト 考えるということ ラッセルのパラドックス Haskell Prelude Ocaml ボーカロイド 圏論 jQuery デモ HTML Python ツールボックス XAMPP Ruby ubuntu WordPress 脳の話 話のネタ リンク 幸福論 キリスト教 心の話 メモ 電子カルテ Dojo JavaScript C# NetWalker ed と sed HTML Raspberry Pi C 言語 命題論理 以前の記事
最新のトラックバック
最新のコメント
ファン
記事ランキング
ブログジャンル
画像一覧
|
ファン申請 |
||