This article has multiple issues. Please help improve it or discuss these issues on the talk page. (Learn how and when to remove these template messages)
This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed. Find sources: "Template Haskell" – news · newspapers · books · scholar · JSTOR(October 2021) (Learn how and when to remove this message)
The topic of this article may not meet Wikipedia's general notability guideline. Please help to demonstrate the notability of the topic by citing reliable secondary sources that are independent of the topic and provide significant coverage of it beyond a mere trivial mention. If notability cannot be shown, the article is likely to be merged, redirected, or deleted. Find sources: "Template Haskell" – news · newspapers · books · scholar · JSTOR(December 2019) (Learn how and when to remove this message)
(Learn how and when to remove this message)
Template Haskell is an experimental language extension to the Haskell programming language implemented in the Glasgow Haskell Compiler (version 6 and later).[1] In early incarnations it was also known as Template Meta-Haskell.
It allows compile-time metaprogramming and generative programming by means of manipulating abstract syntax trees and 'splicing' results back into a program. The abstract syntax is represented using ordinary Haskell data types and the manipulations are performed using ordinary Haskell functions.
'Quasi-quote' brackets [| and |] are used to get the abstract syntax tree for the enclosed expression and 'splice' brackets $( and ) are used to convert from abstract syntax tree into code.
As of GHC-6.10, Template Haskell provides support for user-defined quasi-quoters, which allows users to write parsers which can generate Haskell code from an arbitrary syntax. This syntax is also enforced at compile time. For example, using a custom quasi-quoter for regular expressions could look like this:
digitsFollowedByLetters=[$re|\d+\s+|]
^Sheard, Tim; Jones, Simon Peyton (3 October 2002). "Template meta-programming for Haskell". Proceedings of the 2002 ACM SIGPLAN workshop on Haskell. Association for Computing Machinery. pp. 1–16. doi:10.1145/581690.581691. ISBN 1581136056. S2CID 6096655.
TemplateHaskell is an experimental language extension to the Haskell programming language implemented in the Glasgow Haskell Compiler (version 6 and...
original on 2009-03-04. "TemplateHaskell". (type-safe metaprogramming in Haskell) Bright, Walter. "Templates Revisited". (template metaprogramming in the...
They are known as parametric polymorphism in ML, Scala, Julia, and Haskell. (Haskell terminology also uses the term "generic" for a related but somewhat...
provided in standard Haskell. A significantly more powerful system of types and typeclasses, described below. TemplateHaskell, a system for compile-time...
dialects Clojure Common Lisp Racket Scheme hygienic macros MacroML TemplateHaskell Scala Nim Rust Haxe Julia Elixir The IBM/360 and derivatives had powerful...
Haskell Indian Nations University is a public tribal land-grant university in Lawrence, Kansas, United States. Founded in 1884 as a residential boarding...
Lee Grant (born Lyova Haskell Rosenthal; October 31, during the mid-1920s) is an American actress, documentarian, and director. For her film debut in...
Haskell Wexler ASC (February 6, 1922 – December 27, 2015) was an American cinematographer, film producer, and director. Wexler was judged to be one of...
David Michael Haskell (June 4, 1948 – August 30, 2000) was an American film, stage and television actor and singer best known for his performance in the...
This article describes the features in the programming language Haskell. A simple example that is often used to demonstrate the syntax of functional languages...
software portal Template Toolkit Web Site Template Toolkit on the CPAN GitHub repository Andy Wardley's Template Toolkit Web page Haskell version "TT3 Development...
Concurrent Haskell extends Haskell 98 with explicit concurrency. Its two main underlying concepts are: A primitive type MVar α implementing a bounded/single-place...
Colonel David Haskell Hackworth (November 11, 1930 – May 4, 2005) was a United States Army officer and journalist, who was decorated in both the Korean...
Miss Haskell," but Haskell called it off, making it "clear to him that she preferred his friendship to any burdensome tie of marriage." Haskell would...
Neil David Haskell (born April 16, 1987) is an American contemporary dancer and actor. He is best known as a contestant on So You Think You Can Dance...
(C++). As an illustration, the above mentioned Haskell example of typeclass Eq would be written as template <typename T> concept Equal = requires (T a, T...
produce the entirety of the list thus allowing, for example, the previous Haskell definition of the members of an infinite list. The existence of related...
improve it or discuss these issues on the talk page. (Learn how and when to remove these template messages) (Learn how and when to remove this message)...
(PDF) on 2011-10-08. Retrieved 2009-08-26. "Haskell in industry". Haskell Wiki. Retrieved 2009-08-26. Haskell has a diverse range of use commercially, from...