【发布时间】:2013-11-21 04:17:58
【问题描述】:
我想编写一个函数,它接受向量 [& x] 并对元素对应用测试。输出测试认为相同的元素向量和 nil 元素向量。
我的第一个想法是获取向量并将它们展平。
(defn soup [& x]
(vec (flatten x))
然后应用诸如相同的测试?否定?或类似的规定。正是在模式匹配的时候,我一直在尝试组装输出。
例如) 输入1:[:a :b :c :a :b :c]
输出 1:[[:a :a] [:b :b] [:c :c]]
输入 2:[[:a :b :c] [:a :b :c]]
输出 2:[[[:a :b :c] [:a :b :c]]]
如果输入 2 首先被展平,它会返回输出 1。
【问题讨论】:
-
嗨@Alex,你能提供一个输出示例吗?
-
扁平化几乎不是你想要的; (汤:a:b:c),(汤[:a] [:b:c]),(汤[:a:b]:c)和(汤[[[:a:b:c]] ]) 都会根据该定义返回相同的结果