- 追加された行はこの色です。
- 削除された行はこの色です。
- Haskell へ行く。
* はじめてのHaskell [#d1161707]
HaskellをやるためにはまずHaskellコンパイラを導入します。~
最も広く使われているものは、The Glasgow Haskell Compiler (GHC) です。~
導入の方法は色々ありますが、手っ取り早く必要なものを揃えるには、''Haskell Platform'' をダウンロードするのがベストです。~
Haskell Platform には GHC コンパイラだけでなく、便利なHaskellのライブラリのセットも同梱されています。~
Haskell Platform を手に入れるには、http://hackage.haskell.org/platform/ に行って、利用している OS 向けの指示に従ってください
** GHC の構成 [#rc986442]
:ghc|速いネイティブコードを生成する最適化コンパイラ
:ghci|対話型インタプリタとデバッガ
:runghc|コンパイルせずにHaskellプログラムをスクリプトとして走らせるプログラム
* Jungle-haskell [#g14135f6]
非破壊木構造を扱うHaskell module
** 実際に使ってみよう [#yf054bf6]
研究室のリポジトリからソースを持ってくる
>$ hg clone ssh://one@firefly.cr.ie.u-ryukyu.ac.jp/hg/Members/toma/Jungle-haskell/
Main.hsという、実際にmoduleをimportして利用しているプログラムがあるので参考にする~
** 利用できる型や関数など [#t5042879]
***型 [#s9359a2d]
:Jungle|
木とStringを組にして保持するデータ型
:Tree|
RootNodeを保持しているデータ型
:Node|
childrenとattributesを持つデータ型~
childrenとして、他のNodeを持つことができる
:Children|
IntとNodeを組にして保持するデータ型~
:Attributes|
StringとByteStringを組にして保持するデータ型
***関数 [#x8ff6e1a]
:createJungle|
空のJungleを作成する
:createTree|
Jungleと木の名前を渡すと、その名前の空の木を含んだJungleを返す
:getTreeByName|
Jungleと木の名前を渡すと、木を返す~
木の名前が存在しない場合でも、空の木を返す
:getRootNode|
Treeから、RootNodeを得ることができる
:getChildren|
NodeからChildrenを得る
:getAttributes|
NodeからAttributesを得る
:at|
ChildrenとIntを渡すとNodeを得られる
存在しない場合でも、空のNodeを返す
:get|
AttributesとStringを渡すと、ByteStringが得られる
存在しない場合でも、空のByteStringが得られる
:addNewChildAt|
Treeと、子を追加したいNodeのPath、子を追加したい場所、追加したいNodeを渡すと、追加したTreeを返す
:deleteChildAt|
Treeと、子を削除したいNodeのPath、削除したい子の場所を渡すと、削除したTreeを返す
:putAttribute|
Treeと、Attributeを追加したいNodeのPath、Attributeに関連付けたいString、追加したいByteStringを渡すと、追加したTreeを返す
:deleteAttribute|
Treeと、Attributeを削除したいNodeのPath、Attributeに関連付けたStringを渡すと、削除したTreeを返す