はじめての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

# 実際に使ってみよう

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

1
$ 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