import Data.List
import System.IO
import Data.STRef
import Data.Char
main = do
let x = dup 'a' "the cat in the hat has a fat head"
putStrLn $ show $ x
这是我到目前为止,我不知道从哪里开始
答案 0 :(得分:1)
编写函数以使用列表
时,可以使用:
x:xs
模式匹配列表到标题x
和尾xs
x:xs
从x
和xs
有很多方法可以编写dup
函数,这是我使用guard |
dup :: Char -> String -> String
dup c [] = []
dup c (x:xs)
| c == x = x:x:dup c xs
| otherwise = x:dup c xs
main = do
let x = dup 'a' "the cat in the hat has a fat head"
putStrLn x
给
the caat in the haat haas aa faat heaad
答案 1 :(得分:1)
您可以使用列表理解来解决它。
dup :: Char -> [Char] -> [Char]
dup c string = [ ss | s <- string, ss <- if c == s then [c] ++ [s] else [s]]
答案 2 :(得分:0)
这么多方法;),例如
dup :: Char -> String -> String
dup charToDup s = concatMap dupC s
where dupC c = if c == charToDup then replicate 2 c
else [c]