[英]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.