Valor de una expresión aritmética básica
Usando el tipo de las expresiones aritméticas básicas, definir la función
valor :: Expr -> Int
tal que valor e
es el valor de la expresión aritmética e
. Por ejemplo,
valor (P (C 2) (S (C 3) (C 7))) == 20
Soluciones
A continuación se muestran las soluciones en Haskell y las soluciones en Python.
Soluciones en Haskell
import Expresion_aritmetica_basica (Expr(..)) valor :: Expr -> Int valor (C x) = x valor (S x y) = valor x + valor y valor (P x y) = valor x * valor y
Soluciones en Python
from src.expresion_aritmetica_basica import Expr, C, S, P def valor(e: Expr) -> int: match e: case C(x): return x case S(x, y): return valor(x) + valor(y) case P(x, y): return valor(x) * valor(y) assert False