来自Haskell的我发现在Clojure中很难遍历某些数据类型。在Haskell中,如果我喜欢对某个类型进行递归,最基本的情况是foo (x : y : xs) = bar y (foo xs)
foo但我认为Clojure的破坏并不像Haskell的模式匹配那样强大。有一个很好的习惯方式来完成我想做的事情吗?举个例子,如果我有一个列表/向量,那么当没有更多的元素时,如何匹配一个案例呢?
我刚开始学习haskell和模式匹配。我只是不明白它是如何实现的,[]和(x:_)的计算结果是不同的类型,这种模式的函数实现由于多态性而被识别,或者我错了,还有另一种使用的技术。head' (x:_) = x tell :: (Show a) => [a] -> String
tell [] = "The list is empty"你能解释一下haskell是如何知道哪种模式</