[英]Haskell doubling characters in a string
我基本上被要求打开“HelloWorld!” 到“HheelllllooWwoorrlldd!!” 使用仅使用此类型的 Haskell 函数
stringDub :: String -> String
我不是在寻找直接的答案,只是关于如何去做的一些指示,因为我对 Haskell 完全陌生。
提前致谢。
您使用模式匹配将参数分解为第一个字符和剩余的字符,然后在尾部递归调用 stringDub 函数。 您还需要检查空列表,以便在没有更多元素时结束递归。
stringDub [] = []
stringDub (h:t) = doubleItUp h ++ stringDub t
where doubleItUp :: Char -> String
doubleItUp = -- fill in the rest.
或者因为字符串是列表,而列表是单子:
stringDub' :: String -> String
stringDub' xs = do
xs >>= \x -> [x,x]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.