这个表达:
sort words "fire water earth fire"
--- 给出了这个错误 ---
Couldn't match expected type `[a]'
against inferred type `GHC.Base.String -> [GHC.Base.String]'
有人可以向我解释这里发生了什么以及如何优雅地表达 sort.words 吗?
最佳答案
你要这个:
sort (words "fire water earth fire")
当你做
sort words "fire water earth fire"
它实际上在做
(sort words) "fire water earth fire"
sort
需要一个列表( [a]
),但你给它 words
,它是一个函数接受一个字符串并返回一个字符串列表( String -> [String]
),因此错误消息(它不能将 String -> [String]
视为任何列表)。你也可以这样做:
sort $ words "fire water earth fire"
这相当于第一个版本,可能看起来更整洁。
关于haskell - sort.words 的新手,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8858059/