Dado que esta operación es lineal, no debe usarla en la parte "caliente" de su código, donde el rendimiento es importante. En una parte fría, use list @ [element]
como sugiere el Adi
. En una parte caliente, reescribe tu algoritmo para que no necesites hacer eso.
La forma típica de hacerlo es acumular resultados en el orden inversa durante el procesamiento, y luego invertir toda la lista acumulada antes de devolver el resultado. Si tiene N pasos de procesamiento (cada uno de ellos agrega un elemento a la lista), por lo tanto, amortiza el costo lineal del reverso sobre N elementos, por lo que mantiene un algoritmo lineal en lugar de uno cuadrático.
En algunos casos, otra técnica que funciona es procesar sus elementos en orden inversa, de modo que los resultados acumulados estén en el orden correcto sin un paso de inversión explícito.