如何编写一个函数,以给定的自定义字符替换每个输入字符串的第一个字符?

时间:2020-04-08 12:23:52

标签: haskell

例如,如果我们想将每个字符替换为字母“ B”

示例:

replace["Fiba","Voba","Lidi"] = ["Biba","Boba","Bidi"]

1 个答案:

答案 0 :(得分:-2)

您首先要构建一个函数,该函数将在单个字符串上执行此操作,也就是说,该函数将“ Fiba”映射到“ Biba”。看起来应该像这样:

replace1 :: String -> String
replace1 (_:xs) = 'B' : xs

这利用了构造函数(:)上的模式匹配,这意味着_是字符串的第一个字符,而xs是其余的字符。 (_是一个特殊名称,可以分配多个值,但不能使用。它主要用于丢弃不需要的值,例如本例中原始字符串的第一个字符。)可以将您的replace函数定义为

replace :: [String] -> [String]
replace = map replace1

编辑:提供的示例代码现在应该可以使用。