¿Alguien sabe si hay una función en Haskell, que hace algo como esto:Convertir una cadena a un constructor de tipos en Haskell
"Int" -> Int
"String" -> String
"Bool" -> Bool
decir. toma una representación de cadena de un nombre de constructor de tipo y la convierte al constructor de tipo real, tanto en una expresión como en un patrón.
edición: Mi objetivo general es el de simplificar algo como:
transExp (Add exp1 exp2) vars
= transExp exp1 vars ++ transExp exp2 vars ++ [IAdd]
transExp (Sub exp1 exp2) vars
= transExp exp1 vars ++ transExp exp2 vars ++ [ISub]
En un único ajuste de patrones, así que básicamente convertir Agregar o Sub en una cadena, añadir una "I" en la parte delantera, y convertir volver a un tipo.
¿Esto es posible? ¿No son los tipos un concepto de tiempo de compilación? ¿Qué tipo de función tiene esa función? –
No tengo idea de si esto es posible o no, supongo que tendría Type String -> a, pero realmente no estoy seguro ... – Jack
Echa un vistazo a la plantilla haskell entonces. Además 'IAdd' no es un tipo, sino un constructor de tipo, que fue engañoso. – nponeccop