Haskell で多次元配列を使うときは、Data.Array モジュールを import する。配列の定義は、
array (配列のインデックスの境界)(インデックスのタプルと値のタプルのリスト) 例えば、 arrayData = array ((1,1),(2,2)) [((1,1),1), ((2,1),2), ((2,2),3), (1,2),4)] のようにする。Hugs で確かめると次のようになる。インデックスと値のタプルのリストの順序は不定でいいようだ。タプルの総数も合わせなくてもいいが、値の定義されていないインデックスでアクセスするとエラーになる。 HHugs> :load Data.Array Data.Array> arrayData ! (2,2) where arrayData = array ((1,1),(2,2)) [((1,1),1), ((2,1),2), ((2,2),3), ((1,2), 4)] 3 また、配列を使った九九の表を作るプログラム kuku2.hs は次のようになる。 import Data.Array kuku = array ((2,2),(9,9)) [((i,j),i*j)| i<-[2..9],j<-[2..9]] 実行例: Hugs> :e kuku2.hs Hugs> :l kuku2.hs Main> kuku ! (2,3) 6 Main> kuku ! (4,7) 28 配列の値をインデックスで取り出すときは、!演算子を使う。 関数型のプログラム言語では、配列の値を変更することはできないから、配列に操作を加えるときは元の配列の値から新しい配列を作ってその値を戻り値で返すことになる。ちょっと面倒だ。 配列に関する詳しい説明はここにあるが、わかりやすいとは言えない。
by tnomura9
| 2009-11-01 23:24
| Haskell
|
Comments(0)
|
カテゴリ
新型コロナウイルス 主インデックス Haskell 記事リスト 圏論記事リスト 考えるということのリスト 考えるということ ラッセルのパラドックス Haskell Prelude Ocaml ボーカロイド 圏論 jQuery デモ HTML Python ツールボックス XAMPP Ruby ubuntu WordPress 脳の話 話のネタ リンク 幸福論 キリスト教 心の話 メモ 電子カルテ Dojo JavaScript C# NetWalker ed と sed HTML Raspberry Pi C 言語 命題論理 以前の記事
最新のトラックバック
最新のコメント
ファン
記事ランキング
ブログジャンル
画像一覧
|
ファン申請 |
||