Aplicación de una función a una expresión aritmética

Usando el tipo de las expresiones aritméticas básicas, definir la función

tal que aplica f e es la expresión obtenida aplicando la función f a cada uno de los números de la expresión e. 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. Para resolver este problema podemos utilizar una función recursiva. La idea es recorrer la expresión e y aplicar la función f a cada uno de los números de la expresión. La forma en que recorremos la expresión dependerá del tipo de expresión que sea.

    Por ejemplo, si e es una expresión del tipo C Int, entonces podemos aplicar la función f al número que contiene y devolver una nueva expresión C con el resultado de aplicar f:

    Si e es una expresión del tipo S Expr Expr, entonces debemos recorrer ambas expresiones hijas y aplicar la función f a ellas. Luego, debemos devolver una nueva expresión del tipo S con las expresiones hijas modificadas:

    Finalmente, si e es una expresión del tipo P Expr Expr, entonces debemos seguir el mismo proceso que para S. Es decir, debemos recorrer ambas expresiones hijas y aplicar la función f a ellas. Luego, debemos devolver una nueva expresión del tipo P con las expresiones hijas modificadas:

    Teniendo en cuenta lo anterior, podemos implementar la función aplica de la siguiente manera:

Escribe tu solución