Pregunta

¿Podemos usar la API de GHC o algo más para cargar no módulos de fuente de texto, sino expresiones AST, similares a haskell-src-exts Exp type ?De esta forma, podríamos ahorrar tiempo para la generación y el análisis de código.

¿Fue útil?

Solución

No creo que la API de GHC exponga una interfaz AST (aunque podría estar mal), pero Template Haskell sí.Si crea expresiones usando la estructura Language.Haskell.TH Exp, puede crear funciones / declaraciones y hacer uso de ellas mediante la sintaxis $(someTHFunction).

Una advertencia bastante importante es que TH solo se ejecuta en tiempo de compilación, por lo que necesitaría generar previamente todo.Si desea usar TH en tiempo de ejecución, creo que necesitaría imprimir de forma bonita la plantilla haskell AST y luego usar la API de GHC en la cadena resultante.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top