任何Haskell专家可以为我澄清一些事情:
给出一个函数的简化示例match
它应该从列表中返回匹配的值,这是使用 Maybe
的“更好”函数定义或返回 []
(一个空列表)?
那是:
match :: String -> [String] -> Maybe String
或者
match :: String -> [String] -> [String] {- possibly empty, if no match -}
出于清晰的原因,我更喜欢第一个版本,但我很想知道这种事情是否有约定。
最佳答案
如果它只能返回零个或一个匹配项,则使用 Maybe
(因为这就是它的意思);如果可以返回任意数量的匹配项,则使用 []
(因为这就是它的意思)。
关于Haskell 约定 : Maybe or empty list?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5445559/