我需要创建一个函数,它接受字符串的第一个元素,但是由于我在另一个函数中递归地使用这个函数,所以我需要为一个空列表声明Edge大小写。如果给定一个空列表,这个函数怎么能什么都不做。
takeFirstElem :: String -> Char
takeFirstElem [] = {- missing Element -}
takeFirstElem (x:xs) = x我所缺少的是类似于空元素的东西(比如空列表[]中的nil元素)。像这样的东西存在吗?还是有别的方法来解决这个问题?
发布于 2021-12-28 14:18:59
有一个NULL character \NUL [wiki],但你不能返回“什么”。您应该始终返回每个类型的签名的Char。
通常,如果输入无效,则返回Maybe Char,因此在输入无效的情况下返回Nothing,如果输入有效,则返回Just x,因此可以实现如下:
takeFirstElem :: String -> Maybe Char
takeFirstElem [] = Nothing
takeFirstElem (x:_) = Just x在这种情况下,您的takeFirstElem是的特例。
https://stackoverflow.com/questions/70508272
复制相似问题