有没有Haskell专家可以为我澄清一些问题:
给出一个函数match
的简化示例,该函数应从列表中返回匹配的值,哪种函数定义更好使用Maybe
还是返回[]
(空列表)?
也就是说:
match :: String -> [String] -> Maybe String
或者
match :: String -> [String] -> [String] {- possibly empty, if no match -}
我更喜欢第一个版本,因为它更加清晰易懂,但我很想知道是否有关于这种事情的约定。
[String]
但得到了Maybe String
(或反之),那么可以使用非常易于使用的maybeToList
和listToMaybe
自然变换/单子态映射,以便能够交替使用它们。 - Justin L.