Sobre la pureza de las funciones, ¿están realmente desacoplados los sistema tal como idealizamos?

Salvo en programas funciones fáciles, estar seguro, entender las correspondencias entre las partes resulta muy complicado. Idealizamos nuestros sistemas y consideramos que están desajustados mas verdaderamente estos son porosos y con cierta frecuencia los efectos fluyen entre ellos sin que nos demos cuenta… hasta el momento en que es tarde. Esta porosidad puede resultar en una correspondencia no deseada (un bug) o bien en un enraizamiento en que el desacople ha desaparecido. Hay muchas técnicas que pretenden sostener el aislamiento mas la mayor parte son patrones o bien guías cuyo única garantía radica en la entereza del equipo de desarrollo para proseguirlas. Existen no obstante, lenguajes que garantizan firmemente el aislamiento de las partes, con sus ventajas y sus inconvenientes.

Funciones puras, funciones impuras

Una función, o bien es pura, o bien es impura. Y es pura cuando cumple las 2 siguientes condiciones:

con independencia de la situación variable del Cosmos, si se le entregan exactamente los mismos valores en sus factores va a devolver, precisamente y siempre y en toda circunstancia, exactamente el mismo valor resultante.
cuando es invocada, la función no genera totalmente (y también idealmente) ningún efecto en la situación del Cosmos.

Lo primero quiere decir que el comportamiento de la función no depende en lo más mínimo de cualquier valor, configuración, parametrización, estado, … exterior a la propia función y sus factores explícitos de entrada.

Lo segundo quiere decir que el único efecto detectable sobre tal función es el valor que devuelva como resultado, la función no efectuará ni interaccionará en lo más mínimo con el exterior. La puntualización de idealmente ha sido añadida solamente por el hecho de que vivimos en un planeta físico en el que efectuar cualquier operación (ej. tres siete) requiere energía, tiempo de procesamiento de alguna CPU, etc.

Una función impura podría ser:

// invoca al Cosmos para conseguir un estado azaroso
int aleatorio_con_paridad(int paridad) {
return rand()