関数型言語を触ってみる(その6)

  • 4章 関数を作ってみよう(Case式とif式、から)
    • ガードシーケンス以外の条件判断の方法がif式とcase式
    • ガードはクローズヘッドにつける。if式はクローズボディの中で記述する
    • ifはend.で終わる。末尾にはピリオドを付ける(つけ忘れそう。elseというのはないようだ)
    • if式の記述では、その他のケースをtrueというアトムで表わす(ないと、エラー発生!)
    • case式はif式より柔軟な条件判定が可能
    • ファンとは、それ自体の名前を持たない匿名関数のこと(!)
    • fun式の戻り値は宣言した匿名関数自体となる(うーん...)
    • 匿名関数への変数束縛ができる(うーん、うーん...)
    • リストを扱うための関数が含まれているlistsというモジュールがある
    • ガード述語(述語って...)
    • filter()関数は、引数に与えたリストに述語を適用して結果がtrueとなる要素のみで構成されるリストを返す
    • すでに宣言されている関数を匿名関数として扱うことも可能

そろそろ読んでるだけでは難しい。試してみないと...。

p.100から再開。

    • ファンを返すファンを宣言する(!ファンの入れ子
    • ファンを返す関数のことを高階関数と呼ぶ
    • ファンは、変数の値としたり関数の引数や戻り値とすることができる(ふーん)
    • 高階関数とはファンを引数に取るか、戻り値としてファンを返す関数のこと
    • 高階関数は基本ロジックとファンロジックの組み合わせにより、幾通りもの仕様を持てるようになる(え!)
    • Funcがより一般的なファンであるのに対して、Predはtrueまたはfalseを返す述語としてのファン(わ、わからん...)

区切りがいいからここで一休み。