Clojureを勉強している2

- 作者: Carin Meier
- 出版社/メーカー: O'Reilly Media
- 発売日: 2015/04/14
- メディア: Kindle版
- この商品を含むブログを見る
この本、読みやすい英語でオススメです。
今日は第2章第1節をやった。
true?,false?,nil?,not,=,not=,empty?覚えた。- へー、trueのクラスはjava.lang.BooleanでJavaのそのまま使ってるのかー。ってJVMに通すんだから当たり前っちゃー当たり前か。
- "nil is logically false"を3回唱えよとか出てきたw。
(= '(:drinkme :bottle) [:drinkme :bottle])がtrueになるのはカッコいいなぁ。(class (seq [1 2 3]))でclojure.lang.PersistentVector$ChunkedSeqが返るのはびっくりした。Seqクラス的なものがあると思ったら違うっぽい。seqはコレクションが空でないときの判定に使われるという、言語特有のイディオム出てきた。every?すげえな、コレクションの要素を全部判定してくれる。便利関数だ。- 末尾に
?がついた関数はtrue/falseを返すのが慣習とのこと。Rubyといっしょだな。 not-any?、英語がスッと出ないので覚えにくい。someが1つ目の引数にHashSet使うことがあるの、覚えられなさそう……if,whenはともかくif-let,when-letの例が良くないと思う……letしたシンボル使ってない……cond綺麗よな。しかし、:elseの代わりに"default"使えるようにしたのなんでだろう……caseは=関数を適用してくれると、ふむ。あああ、デフォルト値の設定がなんか気に入らない。
以下、今日やった分の目次:
- Chapter 2 Flow and Functional Transformations
- Controlling the Flow with Logic