関数型言語を触ってみる(その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式”から。