作为一个来自Haskell的人,我发现在Clojure中遍历一些数据类型很困难。 在Haskell中,如果我想对某个类型进行递归,最基本的情况下通常是这样的:
foo (x : []) = Just value
foo (x : y : xs) = bar y (foo xs)
foo _ = Nothing
很好。
但是我认为Clojure的解构远不如Haskell的模式匹配强大。有没有一种漂亮的惯用方式来完成我要做的事情?举个例子,如果我有一个列表/向量,如何匹配没有更多元素的情况?