Template Haskell is an experimental language extension to the Haskell programming language implemented in the Glasgow Haskell Compiler (version 6 and later). 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+ |] (Wikipedia).
Haskell is a purely functional programming language based on lambda calculus. It uses immutable values and expressions to produce terse code that is suitable for general-purpose software applications. #programming #compsci #100SecondsOfCode 🔗 Resources Haskell Docs https://www.haskell.
From playlist 100 Seconds of Code
LambdaConf 2015 - Modeling Data in Haskell for Beginners Chris Allen
There are patterns for modeling data that are not obvious or widely covered in Haskell that only require the application of basic algebraic datatypes, we'll explore some of these approaches with the dual purpose of introducing thinking in terms of algebraic datatypes in Haskell. The audien
From playlist LambdaConf 2015
5 Years of Haskell in Production
I have been using Haskell in production at Checkpad MED, TramCloud and other many projects for more than 5 years and would like to discuss the advantages and challenges discovered during this time. We will look at first principles on structuring, building and testing Haskell applications a
From playlist Software Development
PROG2006: Advanced Programming Haskell 3b - Basic syntax: * function guards, function patterns * case, if expressions * intersperse, intercalate
From playlist PROG2006 - Programming
PROG2006: Haskell - simple integer calculator.
PROG2006 Advanced Programming Haskell - implementing a simple integer-based, stack-based, calculator. Reverse Polish notation parsing and "evaluating".
From playlist PROG2006 - Programming
C9 Lectures: Dr. Erik Meijer - Functional Programming Fundamentals Chapter 8 of 13
We've kicked off C9 Lectures with a journey into the world of Functional Programming with functional language purist and high priest of the lambda calculus, Dr. Erik Meijer (you can thank Erik for many of the functional constructs that have shown up in languages like C# and VB.NET. When y
From playlist Haskell - Functional Programming Fundamentals (Dr. Erik Meijer )
ZuriHac 2016: Generic (and type-level) Programming with Generics-sop
A Google TechTalk, July 22, 2016, presented by Andres Löh ABSTRACT: Many Haskell functions can be defined for a large class of datatypes in a systematic way. Examples include structural equality and comparisons, all kind of (de)serialization functions (plain text, JSON, binary, etc.), tra
From playlist ZuriHac 2016
Introduction to TypeScript - Luke Hoban
http://fluentconf.com A guided tour of TypeScript, a new language and toolset that makes it easier to write cross-platform, application-scale JavaScript. TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. TypeScript adds optional static types, classes, and modu
From playlist Fluent Conference 2013
O'Reilly Webcast: Designing Domain Specific Languages with Haskell
Domain Specific Languages (DSLs) provide us with a means of creating more succinct languages for expressing certain kinds of code, while still maintaining a tight integration with the host language. Haskell provides many features which make it a great language for implementing DSLs, such a
From playlist O'Reilly Webcasts 2
Category Theory 1.1: Motivation and Philosophy
Motivation and philosophy
From playlist Category Theory
ZuriHac 2015 - Beginning Web Programming in Haskell
Google Tech Talk May 29, 2015 ("show more" for more information) Presented by Oliver Charles https://wiki.haskell.org/ZuriHac2015#Oliver_Charles ABSTRACT For many people, Haskell is not their first programming language - a lot of us learnt to program in other languages like Python or Ja
From playlist ZuriHac 2015
Concepts vs Typeclasses vs Traits vs Protocols
C++ Concepts Haskell Typeclasses Rust Traits Swift Protocols EVENT: Meeting C++ 2020 SPEAKER: Conor Hoekstra PUBLICATION PERMISSIONS: The author provided Coding Tech with the permission to republish this video. **** Become a more effective Developer by using Kite! Kite is a free AI-
From playlist Software Development
Is C++20 a language that supports a functional style of programming? Can we write modern C++ code in a pure functional style that would easily translate into a pure functional language like Haskell, and could that C++ code end up looking just as nice while still being reasonably efficient?
From playlist C++
Why Algebraic Data Types Are Important
Strong static typing detects a lot of bugs at compile time, so why would anyone prefer to program in JavaScript or Python? The main reason is that type systems can be extremely complex, often with byzantine typing rules (C++ comes to mind). This makes generic programming a truly dark art.
From playlist Functional Programming
PROG2006 - Intro to Haskell (Haskell 1)
PROG2006 Advanced Programming Introduction to Haskell Where Haskell came from Basics
From playlist PROG2006 - Programming
LambdaConf 2015 - Developing Web Applications with Haskell Alejandro Serrano Mena
Web development is easy and fun with Haskell... and of course, type safe! Let's take a birds-eye tour on creating a web application in Haskell from scratch, from the initial project creation to deployment in the cloud. By the end of the workshop, you will have deployed a small server for n
From playlist LambdaConf 2015
PROG2006: Haskell 02 - functions, types, basic type classes , tuples, lists.
PROG2006: Advanced Programming Haskell 02: introduction to syntax, lists, functions, types, tuples, type classes. Basic functions on lists.
From playlist PROG2006 - Programming
C9 Lectures: Dr. Erik Meijer - Functional Programming Fundamentals Chapter 3 of 13
We've kicked off C9 Lectures with a journey into the world of Functional Programming with functional language purist and high priest of the lambda calculus, Dr. Erik Meijer (you can thank Erik for many of the functional constructs that have shown up in languages like C# and VB.NET. When yo
From playlist Haskell - Functional Programming Fundamentals (Dr. Erik Meijer )
Why Is Haskell So Hard To Learn And How To Deal With It
Haskell is notoriously hard to learn. I have struggled with the learning curve. I have seen others struggle with it. And I have seen developers struggling to wield the language effectively even after months of learning. We'll talk about five things that give Haskell this (understandably)
From playlist Functional Programming