【发布时间】:2012-11-10 14:09:28
【问题描述】:
我正在尝试编写自己的多态列表类型 List a 来充当默认库列表。我相信代码是正确的,但是我似乎无法在 Hugs98 中成功调用它。使用 List a 类型调用函数并计算非空列表长度的正确方法是什么?
My Haskell Code is:
data List a = Nil | Cons a (List a)
len :: List a -> Int
len Nil = 0
len (Cons _ xs) = 1 + len xs
提前致谢!
【问题讨论】:
-
len (1 `Cons` 2 `Cons` 3 `Cons` Nil)例如,如果您在文件中放置infixr 8 `Cons`声明。你尝试了什么,拥抱是如何抱怨的? -
[a]类型、[]和:、相关联的[item1,item2,item3]括号和逗号语法以及所有[1..5]样式的省略号形式都内置在语言本身中。你不能简单地用你自己的替换 Haskell 的列表实现。
标签: haskell constructor functional-programming declarative hugs