La documentación para scanl dice "esta función se fusionará". ¿Qué significa exactamente fusible aquí? ¿Es mala?¿Qué significa "esta función se fusionará"?
Respuesta
http://www.haskell.org/haskellwiki/Short_cut_fusion
(y, para más información: http://www.haskell.org/haskellwiki/Correctness_of_short_cut_fusion)
Si una función se fusionan, es una buena cosa. Significa que una cadena de funciones se puede fusionar en una función, lo que significa menos asignación, menos acumulación y más velocidad. ¡Increíble!
Aquí hay una fusión trivial: map f . map g
---->map (f . g)
.
Como se detalló anteriormente, hay muchas otras que también son aplicadas por las REGLAS de la biblioteca estándar.
En este caso, fusión de secuencia. Mejor que la fusión de atajo ;-) –
Es como corutinas: si se componen dos funciones, pueden ejecutarse en una secuencia fusionada en lugar de una que se evalúa por completo primero y luego la segunda.
Al igual que los detalles de esa secuencia, no tenemos la fusión de secuencias de forma predeterminada. En cambio, tenemos todo lo que se llama fusión build/foldr (o fusión de acceso directo), en el que, véanse los enlaces que he proporcionado más arriba. Fusion es increíble, y la fusión de secuencias es más impresionante que la compilación/plegado, pero, como recuerdo, hay algunos casos extremos no resueltos que impidieron su adopción en las librerías estándar. Mientras tanto, otras librerías como 'Text' y' Vector', como reall, * do * usan la fusión de secuencias. – sclv
Supongo que se refiere a las técnicas de optimización de fusión de flujo y afirma que se pueden aplicar a la función. Básicamente, si tiene dos funciones que transforman las secuencias, el optimizador combinará las transformaciones para que solo se requiera un cruce.
En resumen, no, no está mal. ¡Todo lo contrario!
- 1. ¿Qué significa esta tilde?
- 2. ¿Qué significa esta advertencia?
- 3. ¿Qué significa esta expresión "!!"
- 4. ¿Qué significa esta consulta?
- 5. C - ¿Qué significa esta línea?
- 6. ¿Qué significa esta expresión? (Función SetConsoleTextAttribute en C)
- 7. ¿Qué significa esta declaración C?
- 8. qué significa esta declaración de función en C++
- 9. ¿Qué significa el signo de interrogación en esta función?
- 10. ¿Qué significa "e" en esta definición de función?
- 11. ¿Qué significa esta expresión regular?
- 12. ¿Qué hace esta función?
- 13. ¿Qué significa esta sintaxis de python?
- 14. ¿Qué significa esta Autorización HTTP RewriteRule?
- 15. ¿Qué significa esta sintaxis de C++?
- 16. ¿Qué significa esta regla de Reescritura?
- 17. ¿Qué significa esta sintaxis de JavaScript/jQuery?
- 18. ¿Qué significa esta firma (&) en PHP?
- 19. git checkout: ¿qué significa esta salida extraña?
- 20. ¿Qué significa exactamente esta importación en Scala?
- 21. ¿Qué significa esta sintaxis de PHP?
- 22. ¿Qué significa esta línea en Python?
- 23. ¿Qué significa esta construcción C++/C++ 11?
- 24. ¿Qué significa esta declaración de Python?
- 25. ¿Qué significa esta configuración en apache?
- 26. ¿Qué significa "@" en esta declaración de CSS?
- 27. ¿Qué significa agregar esta línea a web.config?
- 28. ¿Qué significa esta definición de subsecuencias contiguas?
- 29. ¿Qué significa exactamente la función google.setOnLoadCallback (initialize)?
- 30. ¿Qué significa esta sintaxis de C++ y por qué funciona?
+1 "¿Es malo?" – sehe
Para obtener una idea de cómo funciona, [consulte el documento] (http://www.cse.unsw.edu.au/~dons/papers/stream-fusion.pdf). Es una buena lectura. – hammar