Valor de una expresión aritmética con una variable

Las expresiones aritméticas construidas con una variable (denotada por X), los números enteros y las operaciones de sumar y multiplicar se pueden representar mediante el tipo de datos Expr definido por

Por ejemplo, la expresión X·(13+X) se representa por

Definir la función

tal que valor e n es el valor de la expresión e cuando se sustituye su variable por n. Por ejemplo,

Soluciones

A continuación se muestran las soluciones en Haskell y las soluciones en Python.


Soluciones en Haskell


Soluciones en Python

Un comentario

  1. Podemos definir la función valor de la siguiente manera:

    Expliquemos cada caso:

    • Si la expresión es la variable X, entonces devolvemos el valor de sustitución n.
    • Si la expresión es un número constante C c, entonces devolvemos el valor de esa constante.
    • Si la expresión es una suma S e1 e2, entonces devolvemos el valor de e1 más el valor de e2.
    • Si la expresión es un producto P e1 e2, entonces devolvemos el valor de e1 por el valor de e2.

    Con esta implementación, podemos comprobar que valor (P X (S (C 13) X)) 2 da como resultado 30, tal y como se pide en el ejemplo.

Escribe tu solución