Me preguntaba si es posible hacer coincidir los mismos valores para múltiples veces con las funciones de coincidencia de patrones de los lenguajes de programación funcionales (Haskell/F #/Caml).Patrón que coincide con los valores idénticos
sólo piensa en el siguiente ejemplo:
plus a a = 2 * a
plus a b = a + b
La primera variante se llamaría cuando se invoca la función con dos valores similares (que se almacenan en a
).
Una aplicación más útil sería esta (simplificando un AST).
simplify (Add a a) = Mult 2 a
Pero Haskell rechaza estos códigos y me advierte de definiciones en conflicto para a
- Tengo que hacer comprueba si a caso explícito/en lugar de averiguar si la función tiene valores idénticos. ¿Hay algún truco para indicar que una variable con la que quiero hacer coincidir ocurrirá varias veces?
FWIW, Mathematica admite esto. –