gpt4 book ai didi

string - 计算将一个字符替换为另一个字符的所有可能性

转载 作者:行者123 更新时间:2023-12-04 15:35:36 26 4
gpt4 key购买 nike

> magicFunction 'l' '_' "hello world"
["he_lo world", "hel_o world", "hello wor_d"]

标准 Prelude 中是否有这样的神奇功能,还是可以轻松与其他功能组合?

不,这不是家庭作业,但是,请不要花太多时间手动滚动您自己的复杂解决方案,我宁愿自己做也不愿浪费您的时间;)只是询问它是否在标准中。

编辑:这是我的第一次尝试:
import Data.List (findIndices)

replace i y xs = take i xs ++ y : drop (i+1) xs

magicFunction x y xs = map (\i -> replace i y xs) (findIndices (== x) xs)

可以改进吗?肯定像 replace一定要符合标准吗?我找到了 replace :: Eq a => a -> a -> [a] -> [a]Network.CGI.Protocol ,但它的签名错误。

最佳答案

不,没有像 magicFunction 这样的东西在标准库中。但是自己写很容易,所以除非它是一个经常使用的函数,否则将它放在库中是没有意义的。除了您的版本和 Daniel Wagner 对 tails 的提示之外和 inits ,这是一个简单的实现:

magicFunction find replace = init . helper
where
helper (c:cs) = if c == find then ((replace:cs):) else id $ map (c:) (helper cs)
helper [] = [[]]

关于string - 计算将一个字符替换为另一个字符的所有可能性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11474634/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com