clojure備忘録[clojureの基本的な関数 その4(=関数)]
atomは存在が確認できなかったのでclojureの基本関数としてはこれが最後です。
値が等しいか等しくないかを返却する関数です。
表記
(= form0 form1)
引数を2つとり、両者の「S式の構成も含めて」、「値」が同じであれば論理値のtrueを、
同じでなければfalseを返却します。
上記の説明は実例を見た方が早いでしょう。
論理値の表記はtrueとfalseです。(後のエントリで正式に掲載します。)
実例
まずは単純なアトムから。
user=> (= 1 1) true user=> (= 1 2) false user=>
ま、問題無いでしょう。次も問題ないと思います。
(「=」は関数なので、引数のS式を計算した結果を扱うことが分かれば。)
user=> (= (+ 3 4) (- 10 3)) true user=> (= (+ 3 4) (- 10 2)) false user=>
次はリストを比較してみます。
user=> (= '(a b (c d)) '(a b (c d))) true user=> (= '(a b (c d)) '(a b (C d))) false user=> (= '(a b (c d)) '(a (b c d))) false user=>
1番目は、第1引数も第2引数もまったく同じ構成、値になっているので真が返却されます。
2番目は、構成は同じですが、第1引数が小文字の「c」で、
第2引数が大文字の「C」になっているため、偽が返却されます。
3番目は、構成している要素は全て小文字の「a」〜「d」なのですが、
構成が異なる為、やはり偽が返却されます。