El Problema de la Expresión: Soluciones Elegantes en OOP y FP

2025-09-07

Este artículo profundiza en el "problema de la expresión" en el diseño de software: cómo agregar nuevos tipos de datos y operaciones sin modificar el código existente. El autor utiliza ejemplos en C++ y Haskell para ilustrar las limitaciones de la programación orientada a objetos y funcional en la resolución de este problema. El artículo luego explora soluciones elegantes utilizando el patrón visitor y los multimethods y protocolos de Clojure. El enfoque de Clojure aprovecha inteligentemente el poder de los métodos abiertos, separando las definiciones de métodos de las definiciones de tipo, permitiendo una extensión flexible sin modificar el código existente.