> magicFunction 'l' '_' "hello world"
["he_lo world", "hel_o world", "hello wor_d"]
Czy istnieje taka magiczna funkcja w standardowym Preludium, czy może być łatwo skomponowana z innymi funkcjami?Obliczanie wszystkich możliwości zamiany jednego znaku przez inny
I nie, to nie jest praca domowa, ale mimo to nie poświęcaj zbyt dużo czasu na samodzielne toczenie własnego skomplikowanego rozwiązania, wolałbym to zrobić samemu niż marnować twój czas;) Po prostu pytając, czy jest w standard.
EDIT: Oto moja pierwsza próba:
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)
można go poprawić? Z pewnością coś takiego jak replace
musi być w standardzie? Znalazłem replace :: Eq a => a -> a -> [a] -> [a]
w Network.CGI.Protocol
, ale ma on nieprawidłową sygnaturę.
Czy starasz się zrobić obejście filtru wulgaryzmów? XD – Mysticial
Co jest nie tak z podpisem 'replace'? Ustaw 'a ~ Char' tak' [a] ~ String', a my mamy 'Eq Char', więc o co chodzi? – dave4420
@ dave4420 Pierwszy problem polega na tym, że znajduje się w 'Network.CGI.Protocol' ... Całkiem przypadkowo jako import dla tego rodzaju funkcjonalności (którą możesz znaleźć w bardziej odpowiednich lokalizacjach) – Jedai