4clojure #65 Black Box Testing
4clojure #65 Black Box Testing
シーケンスの種類(:map :set :list :vector)を答える。 ポイントはそれらを調べ、動作を理解することです。
ただし、以下は使用禁止。
class type Class vector? sequential? list? seq? map? set? instance? getClass
(= :map (__ {:a 1, :b 2})) (= :list (__ (range (rand-int 20)))) (= :vector (__ [1 2 3 4 5 6])) (= :set (__ #{10 (rand-int 5)})) (= [:map :set :vector :list] (map __ [{} #{} [] ()]))
動作を調べるといってもよくわからず、ググって答えを探しました。
(fn seq-type [coll] (let [base (empty coll)] (cond (= base {}) :map (= base #{}) :set (reversible? base) :vector (= base ()) :list)))