> magicFunction 'l' '_' "hello world"
["he_lo world", "hel_o world", "hello wor_d"]
tarafından bir karakter yerine tüm olanaklarını hesaplanması standart Prelude böyle bir sihirli işlevi var mı yoksa diğer işlevlerle kolayca oluşabilir?başka
Ve hayır, bu ev ödevi değildir, ama yine de, lütfen kendi karmaşık çözümünüzün el yordamıyla fazla zaman harcamayın, bunu kendim yerine harcamayı tercih ederim;) standart.
DÜZENLEME:
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)
o geliştirilebilir Can: İşte benim ilk denemem? Kesinlikle replace
gibi bir şey standart olmalı? Network.CGI.Protocol
'da replace :: Eq a => a -> a -> [a] -> [a]
'u buldum, ancak yanlış bir imzası var.
: sürümüne ve
tails
veinits
Daniel Wagner'in ipucu ek olarak, burada basit bir uygulama var? XD – Mysticial'Değiştir'in imzası nesi var? 'A ~ Char' yani '[a] ~ String' 'i ayarlayın ve' Eq Char' var, sorun nedir? – dave4420
@ dave4420 İlk sorun, 'Network.CGI.Protocol' içinde olmasıdır ... Bu tür bir işlevsellik için bir ithalat olarak oldukça rasgele (daha uygun konumlarda _can_ bulabilirsiniz) – Jedai