5.1 Transparência Referencial

Assim como as funções matemáticas, a execução de uma função no paradigma funcional sempre produz o mesmo resultado quando dados os mesmos parâmetros . Isso se chama transparência referencial e não só permite que compilador aplique alguns tipos de otimização (e.g., memoização e eliminação de subexpressões comuns), como também permite ao programador deduzir facilmente (e até mesmo provar) que uma função está correta e, em seguida, construir funções mais complexas juntando diversas funções simples.

Exemplo 37:

square x = x * x

A função square, no Exemplo 37, que recebe um número e devolve seu quadrado, possui transparência referencial, uma vez que o seu valor de retorno depende exclusivamente do parâmetro de entrada, e consequentemente, também retornará sempre o mesmo valor para invocações como os mesmos parâmetros.