たとえば、このように2つのリストを取りたいです。
find=["Hou","House","Mouse"]
repl=["Mou","Bird","House"]
だから私がそのようなテキストを与えるとき;
"The House with Mouse is big"
出力は次のようになります。
"The Mouse with House is big"
だから私はこれを書きました;
replace :: String->String->String->String
replace _ _ []=[]
replace find repl text
= if take(length find) text == find
then repl ++ replace find repl (drop (length find) text)
else [head text] ++ (replace find repl (tail text))
replaceMore ::[String]->[String]->String->String
replaceMore _ _ []=[]
replaceMore _ [] _ =[]
replaceMore [] _ _ =[]
replaceMore find repl text
= if (tail find) == [] || (tail repl)==[]
then text
else replaceMore (tail find)
(tail repl)
(replace (head find) (head repl) text)
戻る
"The Mouse with Mouse is big"
だから、私が望むようには機能せず、問題はここにあると思います。
replaceMore _ _ []=[]
replaceMore _ [] _ =[]
replaceMore [] _ _ =[]
しかし、まだこれを修正する方法がわかりません。アイデアはありますか?