【发布时间】:2017-03-31 15:43:39
【问题描述】:
当我尝试运行以下函数时,出现错误:
len' [] = 0
len' (_:xs) = 1 + len' xs
listlon [] = 0
listlon [[]] = 1
listlon (x:xs) = ((len' x):(listlon xs))
functions.hs:41:1: 错误: • 约束中的非类型变量参数:Num [a] (使用 FlexibleContexts 来允许这样做) • 检查推断类型时 listlon :: forall a t。 (Num [a], Num a) => [[t]] -> [a]
有人可以解释一下,如何解决这个问题?这个错误到底在表达什么?
【问题讨论】:
-
始终使用类型签名。它们将使读者和您自己清楚您的意图,并帮助您理解错误消息。