Clojure的split-with函数非常方便,但必须遍历seq的前面部分两次,因为它实际上是作为[(take-while pred coll) (drop-while pred coll)]实现的。尽管如此,编写一个(尾递归)版本还是相当容易的,它只遍历主导部分一次(将主导部分放在一个累积向量中,等等)。但是,我想提取满足谓词的列表的第一个元素,并返回元素和其余的</e
来自Haskell的我发现在Clojure中很难遍历某些数据类型。在Haskell中,如果我喜欢对某个类型进行递归,最基本的情况是foo (x : y : xs) = bar y (foo xs)
foo但我认为Clojure的破坏并不像Haskell的模式匹配那样强大。有一个很好的习惯方式来完成我想做的事情吗?举个例子,如果我有一个<e