好きをブチ抜く

「好き」をブチ抜く

本、映画、科学、哲学、心理、すごい人の考え方など。あらゆる情報を編集したい。

Lisp入門 条件分岐【Land of Lisp勉強メモ#4】

記事の内容

Lisp入門の勉強として、書籍『Land of Lisp』の内容をまとめる。

 

今回は、第4章条件分岐についてだ。

 

対称性という感覚を持ちながら、学んでいきたい。

 

 

 

nilと()の対称性

 

・空のリスト()は偽

 

空リストを検出するのが楽なのは、再帰の処理に便利。リストの構造そのものが再帰的な構造、つまり、コンスのコンスのコンスの...となっている。

 

リストを頭から食べていく関数を書くのが楽。

 

そして、()とnilは全く同等。

 

 

 

 

条件分岐 ifとその仲間たち

 

・ifは一度に一つずつ

条件式を使う理由は、条件によってある式を評価したりしなかったりしたいから。二つの式のうち、どちらか一方だけが評価される。

 

しかし、複数の式の処理はできない。

 

 

・whenとunless

 whenは条件が真の時に囲まれた式を全て実行する。unlessは条件が偽のとき。

 

・万能条件コマンドcond

条件式でいろんなことを一度にやれる。

 

・case

eqで比較するのではなく、比較対象になる値を並べるだけでいい。可読性が上がる。とくに、分岐の数が多い時など。

 

 

 

 

条件式のテクニック

 

・andとor

条件判断コマンドとしても使用可能。

orに与えられた式のうち真になるものが見つかったら直ちに、残りの式は評価せず真を返す。

 

・真理値以上のものを返す関数

真理値だけではなく、もうちょっと有用な情報を返すことができる関数がある。

 

 

 

 

比較関数の方針

さまざまな比較関数があるが、次の基準にしたがうべき。

 

・シンボル同士は常にeqで比較すべし

・シンボル同士の比較でなければequalをつかえ

 

 

 

 

まとめ

本章では、対称性という言葉が繰り返し使用される。そのイメージが条件分岐の構文を見ることで、なんとなくわかってきた。

 

今後、Lispを勉強する上で対称性を感じられるようになりたい。同時に、対称性が破れる瞬間も意識しておきたい。

 

 

 

 

 

 

関連記事

 

www.buchinuku.work

 

 

www.buchinuku.work

www.buchinuku.work

www.buchinuku.work

www.buchinuku.work

www.buchinuku.work