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版
- この商品を含むブログを見る