以下行: (repeat 4 [2 3])
给我这个: ([2 3] [2 3] [2 3] [2 3])
如何从上面的向量列表创建一个向量或列表,以便我得到这个?: [2 3 2 3 2 3 2 3]
谢谢
noi*_*ith 18
concat 实际上正是你想要的功能
user> (apply concat (repeat 4 [2 3]))
(2 3 2 3 2 3 2 3)
Run Code Online (Sandbox Code Playgroud)
这甚至适用于懒惰输入:
user> (take 8 (apply concat (repeat [2 3])))
(2 3 2 3 2 3 2 3)
Run Code Online (Sandbox Code Playgroud)
这是一个替代方案:
user> (def flatten-1 (partial mapcat identity))
#'user/flatten-1
user> (flatten-1 (repeat 4 [2 3]))
(2 3 2 3 2 3 2 3)
Run Code Online (Sandbox Code Playgroud)
它与懒惰兼容,不像flatten保留任何子结构(只做一个平坦的水平)
user> (take 12 (flatten-1 (repeat [2 3 [4]])))
(2 3 [4] 2 3 [4] 2 3 [4] 2 3 [4])
Run Code Online (Sandbox Code Playgroud)
小智 2
(展平 x)
获取顺序事物(列表、向量等)的任何嵌套组合,并将其内容作为单个平面序列返回。
(展平零)返回零。
(flatten (repeat 4 [2 3])) ;(2 3 2 3 2 3 2 3)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2349 次 |
| 最近记录: |