|
|
1
7
您可以使用自定义有状态传感器:
|
|
|
2
4
我喜欢这个 stateful transducer answer 开始 元素,但未找到 停止 元素被找到。如果一个子组是左的 打开 停止 删除的元素:
传感器有一个 完成 本示例与原始传感器示例的唯一区别是 完成 数量:
请注意,在上一个示例中,嵌套的开始/打开不会导致嵌套分组,这让我想到了另一个解决方案。。。 嵌套组和拉链当我把这更一般地看作是“打开”序列时,我想到了拉链:
这将在空列表上创建一个拉链,并使用
|
|
|
3
2
clojure.spec 为了这个。首先,为要分析的数据定义语法:
现在您可以使用
上面的输出不是我们想要的,因此我们定义函数来呈现结果:
并将其映射到已解析的数据上:
|
|
4
1
结果:
使现代化
使用
Clojure备忘单和往常一样,别忘了 bookmark the Clojure CheatSheet! |
|
|
5
1
这是一个使用lazy seq和split with的版本。 关键是考虑序列中每个元素需要生成什么,在这种情况下,伪代码如下所示:
|
|
|
6
1
看起来像
|
|
|
7
1
只是因为我喜欢FSM和快板凳。
|