这是我的程序(我意识到这不是一个完全有用的程序):
data Temp a = Something1 | Something2 deriving (Show,Eq,Ord)
length :: Temp a -> Integer
Something1 = 0
Something2 = 1
我不断收到错误消息:
Haskellfile.lhs:3:3: “长度”的类型签名缺少附带的绑定 (您不能为导入的值指定类型签名)
有人可以帮忙吗?
答案 0 :(得分:10)
data Temp a = Something1 | Something2 deriving (Show,Eq,Ord)
length :: Temp a -> Integer
length Something1 = 0
length Something2 = 1
最好将length
更改为其他内容,以避免与Prelude的长度发生冲突。如果您想将长度用作“默认”,请添加
import Prelude hiding (length)
import qualified Prelude
一开始,请参阅Prelude的Prelude.length
版本。不推荐。
顺便说一下,如果Temp
不依赖于a
,您可以考虑
data Temp = Something1 | Something2 deriving (Show,Eq,Ord)