11
Ieri sera, stavo scrivendo un codice di ricreazione, e ad un certo punto ho sostituito uno concatMap
con >>=
e ho visto un aumento del ~ 10% nel mio codice.Perché è >> = più veloce di concatMap quando dovrebbero essere la stessa cosa?
Ho avuto l'impressione che la definizione di >>=
per []
fosse esattamente concatMap
, quindi sono un po 'confuso.
interessante. Non posso fare a meno di pensare che un 'Pieghevole' che è anche un' Alternativo' equivale a un 'Monade' .... – AJFarmar
@ AJFarmar perché lo penseresti? Non so come questo abbia senso – Emil
@ user3217013 'bind 'fa f = foldr (<|>) vuoto $ foldr (:) [] (fmap f fa)' dove 'bind' :: (F pieghevole, Applicativo f) => fa -> (a -> fb) -> fb'. QED. – AJFarmar