我想编写一个函数,接受向量[& x]并对元素对进行测试。输出测试结果相同的元素向量和nil元素向量。
我的第一个想法是将这些向量扁平化。
然后应用一个测试,如identical?neg?或类似的内容。在尝试组装输出时,我卡在了模式匹配的点上。
例如: 输入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。
我的第一个想法是将这些向量扁平化。
(defn soup [& x]
(vec (flatten x))
然后应用一个测试,如identical?neg?或类似的内容。在尝试组装输出时,我卡在了模式匹配的点上。
例如: 输入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。