Uso de variables mudas para condicionar el llamado de funciones

Algunas veces se necesita usar condicionales para determinar si se llama a una función o no. No hay una forma explícita de decirle a Descartes que ejecute una función si se cumple una condición y que de lo contrario no la ejecute. Esto ocurre frecuentemente cuando se desea ejecutar de forma condicionada funciones.

Para resolver este problema, se pueden usar variables mudas. Estas variables no sirven realmente para nada más que para permitir asociar la condicional a una función. Por ejemplo, considera un ejemplo en que se desea asignar una serie de valores iniciales a varias variables mediante una función, pero que dicha función no devuelve un valor (el campo después del signo = de la función está vacío). Una posible asignación sería la siguiente:

bla=(z>3)?GeneraValores():bla

Aquí se desea que si la variable z es mayor que 3, se ejecute una función GeneraValores(). Esta función no tiene argumentos (por eso su paréntesis se encuentran vacío). Pero además es una función tipo algoritmo que le asigna valores a otras variables.

Esta instrucción le devuelve un valor a la variable bla que no está definido. Pero eso no importa, pues lo que nos interesa solamente es que se ejecute la función, con lo que las instrucciones dentro del algoritmo de la misma se ejecutarán. Si z es menor o igual a 3, el valor que se le asigna a la variable bla es el mismo valor que tenía, y en este caso la función no se ejecuta. Así, la variable bla es muda pues no se usa explícitamente en el programa. Sólo se usa como un medio para llamar a una función de forma condicional.