Selectively replace multiple instances of a character within a string: Difference between revisions

Content added Content deleted
Line 172: Line 172:


{def multrepl_rex
{def multrepl_rex
{def multrepl_rex.rec
{lambda {:word :rules}
{if {A.empty? :rules}
then :word
else {multrepl_rex.rec
{S.replace_one {W.first {A.first :rules}}
by {W.last {A.first :rules}}
in :word }
{A.rest :rules}} }}}
{lambda {:word :rules}
{lambda {:word :rules}
{multrepl_rex.rec :word {A.new :rules}}}}
{if {A.empty? :rules}
then :word
else {multrepl_rex
{S.replace_one {W.first {A.first :rules}}
by {W.last {A.first :rules}}
in :word }
{A.rest :rules}} }}}
-> multrepl_rex
-> multrepl_rex


{multrepl_rex
{multrepl_rex
abracadabra
abracadabra
{A.new
aA aB a_ aC aD // first "a", second "a", fourth "a", fifth "a"
aA aB a_ aC aD // first "a", second "a", fourth "a", fifth "a"
bE // first "b"
bE // first "b"
r_ rF // second "r"
r_ rF // second "r"
_r _a // restore first "r" and third "a"
_r _a // restore first "r" and third "a"
}
}}
-> AErBcadCbFD
-> AErBcadCbFD
(AErBcadCbFD)
(AErBcadCbFD)