[英]Haskell Couldn't match type ‘[Char]’ with ‘Char’ list comprehension
所以我试图通过一系列电影并输出每部电影的标题,编译器说这是不能匹配类型[Char]
与Char
。 问题是我想要[Char]
(一个字符串)而不是Char
? 我很困惑为什么它想要一个角色而不是一个字符串?
fas:: [Film] -> String
fas database = [title x | x <- database]
test.hs:55:27: error:
• Couldn't match type ‘[Char]’ with ‘Char’
Expected type: Char
Actual type: String
• In the expression: title x
In the expression: [title x | x <- database]
In an equation for ‘fas’:
fas database = [title x | x <- database]
任何帮助将不胜感激,我可能措辞这个很差,这在试图搜索其他人有同样问题时没有帮助我:/
问候,新手
如果我理解你想要正确做什么,签名应该是:
fas:: [Film] -> [String]
的确, 一串字符串 。
为什么? 因为你将每部电影都映射到它的标题。 现在因为标题是一个String
,结果是一个String
列表。
编译器实际上是以你解释它的方式抱怨 :因为type String = [Char]
,你隐式写了:
fas :: [Film] -> [Char] -- incorrect
而它应该是:
fas :: [Film] -> [[Char]]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.