La programación funcional es un tipo de programación basado en el uso de funciones matemáticas.
Las operaciones de cómputo en la programación funcional se llevan a cabo por medio de la evaluación de expresiones que producen valores y que son libres de algún efecto secundario. El principal efecto lateral de este, puede ser la alteración evidente de los valores contenidos en memoria.
En los lenguajes imperativos una variable es simplemente el nombre de una localidad de memoria cuyo contenido puede ser leído y modificado. Gracias a que las variables son asignables una única vez.
Los programas funcionales cuentan con una propiedad conocida como transparencia referencial.