Supponiamo che abbia due funzioni f :: [a] -> b
e g :: [a] -> c
. Ho le seguenti due domande:È possibile ottimizzare il caso presentato in un ciclo?
Se effettuo
(f &&& g) xs
dovexs :: [a]
, e se entrambif
eg
coinvolgono loop, è possibile per il compilatore per ottimizzare questi due loop in uno? (Si prega di notare che non sto chiedendo se alcuni specifici compilatore Haskell implementa questa. Voglio sapere se una cosa del genere è possibile.)Può la funzione
traverse
daTraverse
tipo di aiuto di classe mi hanno una tale ottimizzazione con qualcosa lungo le seguenti linee:traverse (someCombinator f g) xs
Penso che le ottimizzazioni come in 1. potrebbero essere eseguite dai supercompilatori. – Landei