【发布时间】:2022-12-09 05:44:14
【问题描述】:
嗨,我正在为此苦苦挣扎,希望有人能提供帮助。
我试图在已经通过递归的字符串的开头添加一个字符。
所以解释一下,该函数接受一个字符串并输出一个字符串。递归代码检查两个字符并将它们替换为其他字符。
到目前为止,一切都很好。
在输出字符串之前的最后,我需要在字符串的开头添加一个字符。
例如,该函数需要将空格替换为 _ 并将“d”替换为“g”,并在开头放置一个“/”。所以:
你好世界 = /Hello_worlg
【问题讨论】:
嗨,我正在为此苦苦挣扎,希望有人能提供帮助。
我试图在已经通过递归的字符串的开头添加一个字符。
所以解释一下,该函数接受一个字符串并输出一个字符串。递归代码检查两个字符并将它们替换为其他字符。
到目前为止,一切都很好。
在输出字符串之前的最后,我需要在字符串的开头添加一个字符。
例如,该函数需要将空格替换为 _ 并将“d”替换为“g”,并在开头放置一个“/”。所以:
你好世界 = /Hello_worlg
【问题讨论】:
如果你有一个名为translate的函数,例如递归将"Hello world"转换为"Hello_worlg",那么你可以使用列表“cons”构造函数将Char放在前面,所以:
function :: String -> String
function s = '/' : trans s
或更短:
function :: String -> String
function = ('/':) . trans
【讨论】:
where 子句使用“内联”辅助函数。