El tipo de las expresiones aritméticas básicas
1. El tipo de las expresiones aritméticas básicas en Haskell
La expresión aritmética 2*(3+7) se representa por
P (C 2) (S (C 3) (C 7))
usando el tipo de dato definido a continuación.
module Expresion_aritmetica_basica where data Expr = C Int | S Expr Expr | P Expr Expr
2. El tipo de las expresiones aritméticas básicas en Python
La expresión aritmética 2*(3+7) se representa por
P(C(2), S(C(3), C(7)))
usando el tipo de dato definido a continuación.
from dataclasses import dataclass @dataclass class Expr: pass @dataclass class C(Expr): x: int @dataclass class S(Expr): x: Expr y: Expr @dataclass class P(Expr): x: Expr y: Expr