Haskell文法まとめ
Information
version | date | memo |
---|---|---|
0.1 | 2012/08/13 | first |
0.2-0.3 | 2012/08/25 |
GHCコマンド
コマンド | コマンド(省略) | 処理 |
---|---|---|
:info | :i | クラス情報 |
:kind | :k | 型の種(kind)表示 |
:load | :l | ロード(hsファイル) |
:module | :m | モジュール切り替え |
:quit | :q | 終了 |
:reload | :r | リロード(hsファイル) |
:type | :t | 型表示 |
:help | :h, :? | ヘルプ |
他コマンドについては、ヘルプコマンドより参照すべし。
文法
コメント
-- 1行コメント {- 複数行コメント -}
ラムダ式
関数抽象、関数適用(1ページ目)
http://www.atmarkit.co.jp/fcoding/articles/haskell/02/haskell02a.html
カリー化(2ページ目)
関数抽象、関数適用詳細(ラムダ計算)
http://ja.wikipedia.org/wiki/%E3%83%A9%E3%83%A0%E3%83%80%E8%A8%88%E7%AE%97
カリー化詳細
http://ja.wikipedia.org/wiki/%E3%82%AB%E3%83%AA%E3%83%BC%E5%8C%96
部分適用
http://ha6.seikyou.ne.jp/home/yamanose/haskell/CURRY.HTML
※ Haskellの関数は、全て1引数の関数であり、2引数以上の関数は、関数を戻り値とする関数の再帰的適用でしかない。
2変数の関数:f(x,y) = x + y
これに、x=1,y=2を適用する場合は、
先ずy=2を適用してf(x,2) = x + 2という関数を取得
次にx=1を適用してf(1,2) = 3を取得
この様な感じで、2変数以上の場合の適用方法は、1つの変数の適用後に返却される関数に対して、さらに適用するという様な流れになる。
2項演算子の部分適用を特にセクションと言う。
(@ e) = \x -> x @ e
(e @) = \x -> e @ x
ここで、@は演算子、eは式
名前空間
参考リンク(名前空間, import, module...)
http://www.shido.info/hs/haskell11.html
※ ファイル名(拡張子除く)とモジュール名は一致する必要がある。
演算子
演算子纏め
http://d.hatena.ne.jp/marony0607/20111205/1323103005
-- $ : 区切り -- output : [1,2,3] (++) [1] $ map (+1) [1,2]