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