Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Haskell 如何编写一个函数,用给定的自定义字符替换每个输入字符串的第一个字符?_Haskell - Fatal编程技术网

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

Haskell 如何编写一个函数,用给定的自定义字符替换每个输入字符串的第一个字符?,haskell,Haskell,例如,如果我们想用字母“B”替换每个字符 例如: replace["Fiba","Voba","Lidi"] = ["Biba","Boba","Bidi"] 首先,我们要构造一个函数,在单个字符串上执行此操作,也就是说,将“Fiba”映射到“Biba”的函数。它应该如下所示: replace1 :: String -> String replace1 (_:xs) = 'B' : xs 这利用了构造器(:)上的模式匹配,这意味着是字符串的第一个字符,xs是其余字符。(\uu是一个特殊

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

例如:

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所得到的。