在很多情况下,我想通过递归函数列出列表,但我找不到正确的方法。
例如(没用,但我能找到最短的)我想从列表中一个一个地获取元素并创建与第一个相同的新列表。
(defn f [x] (list
(first x)
(if (not= (rest x) '())
(f (rest x))
'()
)))
(f '(1 2 3))
我想得到
(1 2 3)
但我明白了
(1 (2 (3 ())))
我不想使用扁平化。例如这个输入
(f '([1 1] [2 2] [3 3]))
将被 flatten 破坏。