関数型言語を触ってみる(その5)
- 4章 関数を作ってみよう(続き。関数呼出しとパターンマッチ)
- |演算子を使えば、リストの先頭要素を残りの部分と分けて表現できる(なに?)
- 先頭要素を検索する場合:search(X, [X|_]) -> 'Found';
- 次の要素を検索する場合:search(X, [_|T]) -> search(X, T);(自己再帰型の呼出し)
- 検索を終了する場合:search(_, []) -> 'Not Found'.
- 適用条件をしぼるためのガードを付ける。ガードを設定すると後続のマッチするパターンも変化する(難しい...)
- ひとつのクローズは、ヘッド、ガード(なくてもよい)、ボディで構成される
- ガードとはクローズ選択時の「条件」のこと(OK)
- ガードを記述する際に使用できるのは、ガード述語、ターム比較演算子、論理演算子(表にまとめてくれている...)
- X=:=Y(XとYは等しい。型変換をしない厳密な比較)。X==Yは自動的な型変換をする比較
- X=/=Y(XとYは等しくない。型変換をしない厳密な比較)。X /= Yは自動的な型変換をする比較
- ガード式をセミコロンで区切るとOR結合、カンマで区切るとAND結合となる(む〜。)
次は”case式とif式”から。