Valor de una expresión aritmética básica
Usando el tipo de las expresiones aritméticas básicas, definir la función
|
1 |
valor :: Expr -> Int |
tal que valor e es el valor de la expresión aritmética e. Por ejemplo,
|
1 |
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.
|
1 2 3 4 5 6 |
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 |
|
1 2 3 4 5 6 7 8 9 10 11 |
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 |