Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.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
String 灵活替换子串方案_String_Replace_Scheme_Substring - Fatal编程技术网

String 灵活替换子串方案

String 灵活替换子串方案,string,replace,scheme,substring,String,Replace,Scheme,Substring,在Scheme中,是否有一种好方法可以将字符串的子字符串替换为另一个长度可能不同的字符串?我正在寻找类似的东西: (replace-all string pattern replacement) (replace-all "slig slog slag" "g" "ggish") => "sliggish sloggish slaggish" 当然,请查看Scheme解释器的文档以找到合适的过程。例如,在“球拍”中,我们有如下工作方式: (string-replace "slig

在Scheme中,是否有一种好方法可以将字符串的子字符串替换为另一个长度可能不同的字符串?我正在寻找类似的东西:

(replace-all string pattern replacement)
(replace-all "slig slog slag" "g" "ggish")
    => "sliggish sloggish slaggish"

当然,请查看Scheme解释器的文档以找到合适的过程。例如,在“球拍”中,我们有如下工作方式:

(string-replace "slig slog slag" "g" "ggish")
=> "sliggish sloggish slaggish"

当然,请查看Scheme解释器的文档以找到合适的过程。例如,在“球拍”中,我们有如下工作方式:

(string-replace "slig slog slag" "g" "ggish")
=> "sliggish sloggish slaggish"

您可以推出自己的。这不是很有效,但它可以在小弦上工作。(我不会在长度超过一百万个字符的字符串上使用它)

使
(prefix?src prefix)
这样,如果列表
src
的开头与
prefix
相同,则我的计算结果为#t

使
(追加反向转正头尾)
使
(追加反向(1 2 3)'(4 5 6));=>(3 2 1 4 5 6)
。这可以通过
foldl
轻松完成,或者它是

然后
(更换所有干草堆针)
非常简单:

(定义(更换所有干草堆针)
大多数处理工作都是在列表上进行的
;字符,而不是字符串。
(让((草堆(字符串->列出草堆))
(指针(字符串->列表指针))
(替换(字符串->列表替换))
(针透镜(线长针)))
(让回路((干草堆)(acc’())
(条件((空?干草堆)
(列表->字符串(反向acc)))
((前缀?干草堆针)
(环(列出尾部草堆针透镜)
(反向附加替换acc)))
(其他
(循环(cdr干草堆)(cons(汽车干草堆)acc‘‘‘‘‘‘‘‘‘‘)
(替换所有“猫看起来像猫。”“猫”“狗”)
; ==> “这条狗看起来像条狗。”

您可以推出自己的。这不是很有效,但它可以在小弦上工作。(我不会在长度超过一百万个字符的字符串上使用它)

使
(prefix?src prefix)
这样,如果列表
src
的开头与
prefix
相同,则我的计算结果为#t

使
(追加反向转正头尾)
使
(追加反向(1 2 3)'(4 5 6));=>(3 2 1 4 5 6)
。这可以通过
foldl
轻松完成,或者它是

然后
(更换所有干草堆针)
非常简单:

(定义(更换所有干草堆针)
大多数处理工作都是在列表上进行的
;字符,而不是字符串。
(让((草堆(字符串->列出草堆))
(指针(字符串->列表指针))
(替换(字符串->列表替换))
(针透镜(线长针)))
(让回路((干草堆)(acc’())
(条件((空?干草堆)
(列表->字符串(反向acc)))
((前缀?干草堆针)
(环(列出尾部草堆针透镜)
(反向附加替换acc)))
(其他
(循环(cdr干草堆)(cons(汽车干草堆)acc‘‘‘‘‘‘‘‘‘‘)
(替换所有“猫看起来像猫。”“猫”“狗”)
; ==> “这条狗看起来像条狗。”