複雑なリスト構造から値を引き出しようとしています。
このようなものを考えると:
[{:a "whatever" :b [:c "foo"]} :e {:f "boo"} :g {:h [:i 62281]}]
取得したい:
["whatever" "foo" "boo" 62281]
これまでのところ、私はこの点に到達しただけです:
((62281) nil (boo) nil whatever foo)
コードは次のとおりです。
(defn get-values [params]
(apply conj
(map (fn [part]
(if (not (keyword? part))
(map (fn [v]
(if (vector? v)
(last v)
v))
(vals part))))
params)))
- 私はnilを取り除くことができないようです
- ある時点以降の値がリストにある理由がわかりません。
- これを行うにはもっと良い方法が必要だと思います。