Haskell

Haskell

# はじめてのHaskell

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

# 実際に使ってみよう

研究室のリポジトリからソースを持ってくる

$ hg clone ssh://one@firefly.cr.ie.u-ryukyu.ac.jp/hg/Members/toma/Jungle-haskell/

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を返す
Licensed under CC BY-NC-SA 4.0
comments powered by Disqus
Built with Hugo
Theme Stack designed by Jimmy