Articulo de referencia

Plantilla Haskell

Template Haskell ( Template Meta-Haskell para versiones anteriores) es una extensión de lenguaje experimental para el lenguaje de programación funcional Haskell , implementada e...

Template Haskell ( Template Meta-Haskell para versiones anteriores) es una extensión de lenguaje experimental para el lenguaje de programación funcional Haskell , implementada en la versión 6 y posteriores del compilador Glasgow Haskell (GHC). [ 1 ]

Permite la metaprogramación en tiempo de compilación y la programación generativa mediante la manipulación de árboles de sintaxis abstracta y la posterior integración de los resultados en un programa. La sintaxis abstracta se representa utilizando tipos de datos Haskell estándar y las manipulaciones se realizan mediante funciones Haskell estándar .

Los corchetes de ' cuasi-cita ' [|se |]utilizan para obtener el árbol de sintaxis abstracta para la expresión encerrada y los corchetes de 'empalme' $(se )utilizan para convertir del árbol de sintaxis abstracta en código.

A partir de GHC-6.10, Template Haskell ofrece soporte para cuasi-citadores definidos por el usuario, lo que permite escribir analizadores sintácticos capaces de generar código Haskell a partir de una sintaxis arbitraria. Esta sintaxis se aplica en tiempo de compilación. Por ejemplo, el uso de un cuasi-citador personalizado para expresiones regulares podría tener este aspecto:

dígitosseguidosdeletras = [ $ re | \ d + \ s + | ]

Ejemplo

Un modismo común es entrecomillar una expresión , realizar alguna transformación sobre ella e insertar el resultado de nuevo en el programa. Podría escribirse como:

resultado = $ ( transformar [ | entrada | ] )

Referencias

  1. Sheard, Tim; Jones, Simon Peyton (3 de octubre de 2002). «Metaprogramación con plantillas para Haskell» . Actas del taller ACM SIGPLAN de 2002 sobre Haskell . Association for Computing Machinery. págs. 1–16 . doi : 10.1145/581690.581691 . ISBN  1581136056. S2CID 6096655 . 
  • Plantilla de Haskell.org Página wiki de Haskell