HaskellをやるためにはまずHaskellコンパイラを導入します。
最も広く使われているものは、The Glasgow Haskell Compiler (GHC) です。
導入の方法は色々ありますが、手っ取り早く必要なものを揃えるには、‘‘Haskell Platform’’ をダウンロードするのがベストです。
Haskell Platform には GHC コンパイラだけでなく、便利なHaskellのライブラリのセットも同梱されています。
Haskell Platform を手に入れるには、http://hackage.haskell.org/platform/ に行って、利用している OS 向けの指示に従ってください
# GHC の構成
- ghc
- 速いネイティブコードを生成する最適化コンパイラ
- ghci
- 対話型インタプリタとデバッガ
- runghc
- コンパイルせずにHaskellプログラムをスクリプトとして走らせるプログラム
# Jungle-haskell
非破壊木構造を扱うHaskell module
# 実際に使ってみよう
研究室のリポジトリからソースを持ってくる
|
|
Main.hsという、実際にmoduleをimportして利用しているプログラムがあるので参考にする
# 利用できる型や関数など
# 型
-
Jungle
- 木とStringを組にして保持するデータ型
-
Tree
- RootNodeを保持しているデータ型
-
Node
- childrenとattributesを持つデータ型
- childrenとして、他のNodeを持つことができる
-
Children
- IntとNodeを組にして保持するデータ型
-
Attributes
- StringとByteStringを組にして保持するデータ型
# 関数
-
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を返す