文字列のコレクションがあり、4 文字を超えるすべての文字列を最初に短い文字列で並べ替えて返したいとします。
次の行に沿って何かを使用してそれを解決できます。
(def strings ["this" "is" "super" "cool" "everybody" "isn't" "clojure" "great!?!?"])
(sort-by count < (filter #(> (count %) 4) strings))
;; > ("super" "isn't" "clojure" "everybody" "great!?!?")
count
2 回使用していることに注意してください。ここではおそらく問題ありませんが、そうでない場合count
はどうなりcount
ますか? count
それを呼び出す代わりにsuper-expensive-function
、絶対に必要以上に実行したくない場合はどうなるでしょうか?
そう:
- 私たちは物事のコレクションを持っています
- 順序付けられたもののコレクションを返したい
- 物事ごとに一度だけ呼び出されるべきである、計算コストの高い関数の結果を使用してフィルタリングおよびソートされます
これを行う既存の機能はありますか、それとも独自に構築する必要がありますか?