Clojureを勉強している3
今日は第2章第2節から第2章の最後までやりました。いや〜面白かった。綺麗だね。
- Functions Creating Functions and Other Neat Expressions
partial
がカリー化か。comp
すごい。
- Destructuring
- 最近の言語は付けるようになってるね。良い
- mapのdestructuringのキーとバリューの位置がちょっと混乱した。
let
関数への引数だから妥当か。 :as
いるよね。- destructuringでデフォルト値(
:or
)書けるのは珍しくない? すごい :keys
は頻出すると。- 関数定義の引数でも使えると。無名関数もかな?
- The Power of Laziness
range
は引数付けないだけで自然数の無限リスト得られるのか!へぇ〜(class (range 5))
と(class (range))
で見ると型が違うのな。前者がclojure.lang.LongRange
、後者がclojure.lang.Iterate
。repeat
ももちろんlazyだとさ。rand-int
便利。(repeat 5 (rand-int 10))
したら妥当だけどちょっと笑った。- 正解は
(repeatedly 5 #(rand-int 10))
。(take 5 (repeatedly #(rand-int 10)))
でも良し。 - repeatedlyさんのrepeatedlyはこれかな?
- 正解は
rest
は無限リストに使えるとのこと。そうだね
- Recursion
The Functional Shape of Data Transformations
map
の解説。doall
で即時実行できるのかreduce
、初期値accなくても実行できるんか。doc見たら最初の2つで実行した結果から始めるみたい。すげえfilter
/remove
か。reject
とかではないんだな。for
出た。let
とか:in
とか:of
とかいらんのね。- コレクション複数取ると全組み合わせ出すのか。やべえな
- おっと
:let
出てきた。面白いな。
flatten
。Rubyと同じ。vec
とかsorted-map
とか型を変える関数あるけどinto
が何でも対応できて便利だな。partition
は余りは捨てて、拾いたいときはpartition-all
か。引数じゃなくて名前が違うんだなpartition-by
も出てきた。こっちは分ける関数を第1引数に取るのか。
Chapter 2 Flow and Functional Transformations
- Functions Creating Functions and Other Neat Expressions
- Destructuring
- The Power of Laziness
- Recursion
- The Functional Shape of Data Transformations
- 作者: Carin Meier
- 出版社/メーカー: O'Reilly Media
- 発売日: 2015/04/14
- メディア: Kindle版
- この商品を含むブログを見る