勉強会初日

  • 今日から勉強会
  • こちらから環境をダウンロード
  • GHCiを使う(WinGHCiを使う)
  • テキストは

すごいHaskellたのしく学ぼう!

すごいHaskellたのしく学ぼう!

  • ここに英語版pdf
  • コードのコピペができる
  • Hakell関連の検索サイト Hoogle
  • Hakellの特長
    • 関数型言語
    • 遅延評価
    • 静的型つけ、ただし、型推測は賢い
  • 算数ができる
  • Hoogleにもあるけれど、関数は、どういう型に対して有効か、と入力と出力とがどういう型でできているかを定めている
sort :: Ord a => [a] -> [a]
    • これは、sortという関数はOrd型をaとして、aのリストを入力にとってaのリストを出力とする、という意味
a => a -> a -> a 
    • こうなっていたら、aをとって、さらにaをとって、aを返す、という意味
  • その他
    • リストは [1,2,3]のように大かっこ[]とカンマ , 区切り
    • GHCiの終了は :q
  • 関数を作って登録する
    • ファイルに次のように書いて、"baby.hs"というファイル名で保存して…
doubleMe x = x + x
doubleUs x y = x*2 + y*2
doubleUs2 x y = doubleMe x + doubleMe y
    • ロードする。":lload baby"でも":l baby"でもよいようだ。WinGHCiならツールバーのFileからロードするファイルを選んでもよい
    • ":cd C:\Users\ryamada\Desktop\Haskell"のようにしてワーキングディレクトリを移動することもできる(ツールバー経由だと、勝手に動いてくれるようだ)
Prelude> :load "baby.hs"
[1 of 1] Compiling Main             ( baby.hs, interpreted )
Ok, modules loaded: Main.