Hier ist ein Beispiel, was ich machen wollte.Was ist falsch an diesem Haskell-Listencode?
let b = ["this","is","a","test!"]
"xx" ++ (b!!3)
Das wird mir "xxtest!"
Wenn die Liste eine beliebige Zeichenfolge mit einem Ausrufezeichen enthält, wird "xx" zu dieser spezifischen Zeichenfolge hinzugefügt. Meine Frage ist, wie dies in eine korrekte Funktion umgesetzt werden kann.
Zur Zeit habe ich diese
replaceElement [] = []
replaceElement (x:xs) =
if '!' `elem` x
then ["xx"] ++ x : replaceElement xs
else x: replaceElement xs
Aber diese Funktion nur „xx“ in der Liste als ein Element hinzufügen, wird es nicht in der Liste die spezifischen Zeichenfolge hinzugefügt werden. Wie kann ich "xx" ++ (b !! x) verwenden, wobei x die Position der Zeichenfolge mit einem Ausrufezeichen ist.