haskell - simbolos - ¿Cómo puedo obtener las optimizaciones más inteligentes que hace GHC?
instalar haskell en ubuntu (1)
Porque puedo verlo venir: esta es una pregunta diferente a qué optimizaciones se puede esperar que GHC realice de forma confiable. porque no estoy pidiendo las optimizaciones más confiables, solo las más inteligentes / poderosas.
Estoy buscando específicamente optimizaciones no intuitivas que hace GHC que pueden tener un impacto serio en el rendimiento y demostrar el poder de las optimizaciones del compilador relacionadas con la evaluación o la pureza. Y explicaciones directas sobre cómo llegar a ellos.
Las mejores respuestas tendrán:
- Una explicación de la optimización y por qué es tan inteligente o poderosa
- Por qué la optimización mejora el rendimiento
- Cómo GHC reconoce cuándo puede usar esta optimización
- Lo que la optimización realmente transforma el código en
- Por qué esta optimización requiere evaluación o pureza diferida
Stream fusión es probablemente la más grande. Resulta algo así como sum . map (+1) . filter (>5)
sum . map (+1) . filter (>5)
sum . map (+1) . filter (>5)
, que nominalmente asigna dos nuevas listas, en un bucle simple que opera en un espacio constante.