繁体   English   中英

Haskell将字符串中的字符加倍

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM