* はじめての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を返す

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS