Haskell 如何编写一个函数,用给定的自定义字符替换每个输入字符串的第一个字符?
例如,如果我们想用字母“B”替换每个字符 例如:Haskell 如何编写一个函数,用给定的自定义字符替换每个输入字符串的第一个字符?,haskell,Haskell,例如,如果我们想用字母“B”替换每个字符 例如: replace["Fiba","Voba","Lidi"] = ["Biba","Boba","Bidi"] 首先,我们要构造一个函数,在单个字符串上执行此操作,也就是说,将“Fiba”映射到“Biba”的函数。它应该如下所示: replace1 :: String -> String replace1 (_:xs) = 'B' : xs 这利用了构造器(:)上的模式匹配,这意味着是字符串的第一个字符,xs是其余字符。(\uu是一个特殊
replace["Fiba","Voba","Lidi"] = ["Biba","Boba","Bidi"]
首先,我们要构造一个函数,在单个字符串上执行此操作,也就是说,将“Fiba”映射到“Biba”的函数。它应该如下所示:
replace1 :: String -> String
replace1 (_:xs) = 'B' : xs
这利用了构造器(:)
上的模式匹配,这意味着是字符串的第一个字符,xs
是其余字符。(\uu
是一个特殊名称,可以分配多个值,但不能使用。它主要用于丢弃不需要的值,如本例中原始字符串的第一个字符。)然后您可以将替换
函数定义为
replace :: [String] -> [String]
replace = map replace1
编辑:提供的示例代码现在应该可以工作了。欢迎使用StackOverflow!通常,你会通过避免开放式问题,而不是展示你所做的尝试(即使它还不起作用)来获得最佳答案,然后其他人可以以此为基础来指导你找到更好的解决方案。好吧,这就是我在没有编译器的情况下尝试编写Haskell所得到的。