> magicFunction 'l' '_' "hello world"
["he_lo world", "hel_o world", "hello wor_d"]
Gibt es im Standard Prelude eine solche magische Funktion oder kann es leicht mit anderen Funktionen zusammengesetzt werden?Berechnung aller Möglichkeiten, ein Zeichen durch ein anderes zu ersetzen
Und nein, das sind keine Hausaufgaben, aber trotzdem, bitte verbringe nicht zu viel Zeit mit deiner eigenen komplizierten Lösung, ich würde das lieber selbst machen, als deine Zeit zu verschwenden;) Nur fragen, ob es drin ist Der Standard.
EDIT: Hier ist mein erster Versuch:
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)
es verbessert werden kann? Sicherlich muss so etwas wie replace
im Standard sein? Ich habe replace :: Eq a => a -> a -> [a] -> [a]
in Network.CGI.Protocol
gefunden, aber es hat die falsche Signatur.
Versuchen Sie, eine Gotteslästerung Filter-Bypass zu machen? XD – Mysticial
Was ist falsch an der Signatur von 'replace'? Setze 'a ~ Char', also' [a] ~ String' und wir haben 'Eq Char', also was ist das Problem? – dave4420
@ dave4420 Das erste Problem ist, dass es in 'Network.CGI.Protocol' ... Ziemlich zufällig als ein Import für diese Art von Funktionalität (die Sie finden _an geeigneteren Standorten) – Jedai