【问题标题】:Haskell how to add a character at the start of a string that has passed by recursionHaskell如何在递归传递的字符串的开头添加一个字符
【发布时间】:2022-12-09 05:44:14
【问题描述】:

嗨,我正在为此苦苦挣扎,希望有人能提供帮助。

我试图在已经通过递归的字符串的开头添加一个字符。

所以解释一下,该函数接受一个字符串并输出一个字符串。递归代码检查两个字符并将它们替换为其他字符。

到目前为止,一切都很好。

在输出字符串之前的最后,我需要在字符串的开头添加一个字符。

例如,该函数需要将空格替换为 _ 并将“d”替换为“g”,并在开头放置一个“/”。所以:

你好世界 = /Hello_worlg

【问题讨论】:

    标签: haskell recursion


    【解决方案1】:

    如果你有一个名为translate的函数,例如递归将"Hello world"转换为"Hello_worlg",那么你可以使用列表“cons”构造函数将Char放在前面,所以:

    function :: String -> String
    function s = '/' : trans s
    

    或更短:

    function :: String -> String
    function = ('/':) . trans
    

    【讨论】:

    • 有没有办法在同一个功能中做到这一点,即反式?
    • @Nunya:您可以通过 where 子句使用“内联”辅助函数。
    • 我知道你在拍摄什么,但你的“较短”版本实际上并不短!
    • @DanielWagner:现在是:)
    猜你喜欢
    • 1970-01-01
    • 2021-02-07
    • 2018-12-23
    • 2021-12-31
    • 2020-12-18
    • 2018-07-20
    • 2019-01-10
    • 2015-02-16
    • 1970-01-01
    相关资源
    最近更新 更多