Metaprogramming

Template Haskell

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).

Video thumbnail

Haskell in 100 Seconds

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

Video thumbnail

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

Video thumbnail

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

Video thumbnail

PROG2006: Haskell 3b

PROG2006: Advanced Programming Haskell 3b - Basic syntax: * function guards, function patterns * case, if expressions * intersperse, intercalate

From playlist PROG2006 - Programming

Video thumbnail

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

Video thumbnail

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 )

Video thumbnail

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

Video thumbnail

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

Video thumbnail

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

Video thumbnail

Category Theory 1.1: Motivation and Philosophy

Motivation and philosophy

From playlist Category Theory

Video thumbnail

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

Video thumbnail

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

Video thumbnail

Functional Parsing in C++20

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++

Video thumbnail

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

Video thumbnail

PROG2006 - Intro to Haskell (Haskell 1)

PROG2006 Advanced Programming Introduction to Haskell Where Haskell came from Basics

From playlist PROG2006 - Programming

Video thumbnail

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

Video thumbnail

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

Video thumbnail

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 )

Video thumbnail

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

Related pages

Abstract syntax tree | Data type | Metaprogramming | Function (mathematics)