Functional Programming eXchange 2012: Andres Löh on Haskell for embedded domain-specific languages
Haskell for embedded domain-specific languages
A domain-specific language (DSL) is a usually small language for a dedicated
domain with its own unique appearance and rules for composition. Haskell has a
very flexible syntax, and offers higher-order functions. Therefore, we can
often mimic the visual style of a particular domain directly within the
language, yielding an embedded DSL.
The advantages of embedding DSLs are that we can use Haskell's strong type
system to ensure the correctness of our DSL programs, saving us the work of
implementing a full compiler. Furthermore, we can use all of Haskell's abstraction
facilities, thereby making the DSL more powerful than it might at first appear.
Finally, we can easily mix different DSLs in a single program.
The Haskell world is full of DSLs being used for various things such as
parsing, testing, interfacing to databases, generating content for the web,
composing music, images and animations etc. In this talk, we will look at a
number of example EDSLs and explore some fundamental principles, with the goal
of highlighting the many advantages (and the few disadvantages) of the EDSL
approach as well as providing advice for the design of new EDSLs.
WANT TO LEARN MORE? THEN CHECK OUT OUR EXPERT WORKSHOPS!Russel Winder's Python WorkshopIn this 4-day Python Workshop, you will learn both low-level details of Python as well as the idiomatic design approaches in Python. We'll start with the language basics after which we discuss various testing strategies and their rationale. Through lectures, exercises and discussions, we'll introduce Concurrency and Parallelism after which we'll learn about GUI's. We'll then explore Networking, XML processing and Persistence when developing applications with Python. On the final day of this Python course, you'll work on an example of Python DSL, we'll learn about Python extensions and extension testing and we'll finish the course with an introduction to Django, Python Web Application frameworks and how to use dynamic techniques. Find out more here
Tomas Petricek and Phil Trelford’s Advanced F# Programming
Tomas Petricek’s and Phil Trelford’s two day course will teach you how to solve real-world .NET problems in F#. Will guide you through several areas where F# can help you be more productive and solve your problems faster, with code that is efficient and easy to maintain. The examples used in this course are based on experience of developing successful commercial applications in F#.
In particular, you’ll learn how to benefit from functional concepts when writing concurrent applications; how to obtain, process and visualize data and how to easily solve seemingly complex algorithmic problems.
After attending the course, you’ll be able to recognize where using F# can save your time and money and you’ll know how to integrate F# components in the .NET ecosystem. Find out more here
David Pollak's Lift Basics Workshop
This Lift Basics course by David Pollak (creator of Lift) introduces Scala and Java developers to the Lift Web Framework. You will learn how to create dynamic, interactive, secure web sites using Lift. This Lift course covers creating a basic Lift project, dynamic content with Snippets, site navigation and access control via SiteMap, forms including multi-page Wizards, and creating real-time, scalable sites with Lift's Comet support. Wether you are a Scala newbie or an intermediate Java developer, David's practical hands-on style will help you understand Lift's Java and Scala API's. Upon completion of this Lift course, you will be able to create secure, dynamic Lift based sites. Find out more here
Typesafe's Fast Track to Scala
This two-day Fast Track to Scala course, designed by Martin Odersky,
the creator of the Scala programming language, and Heiko Seeberger, a
recognized Scala expert, will give you an excellent grounding in Scala.
LEARN HOW TO:
- be a competent user of Scala constructs in application code
- know and be able to apply the functional programming style in
Scala
- know how to use the fundamental Scala tools
- be confident to start using Scala in production applications
Find out more here
Typesafe's Advanced Scala
If you already have some programming experience with Scala and need
to understand it's advanced features, Typesafe's Advanced Scala will
show you how to unleash the full power of this scalable language.
It is intended to enable developers, who have at least 3 months
programming experience with Scala and feel comfortable to use it in
their applications, to fully understand various advanced features of
this programming language and how to apply these to create well designed
libraries or DSLs using proven practices. Find out more here
Typesafe's Fast Track to Play
This one-day course, designed by Fredrik Ekholdt, a Scala and web application expert, and Peter Hausel, one of the main Play committers, is what you need to quick start your web application development with Play 2.0.
This Play 2.0 course is intended to enable you to consolidate your Scala skills and to learn about this great web framework. The course is very practical and centred around a web application that you will build from the ground up using Play 2.0. Find out more here
ABOUT ANDRES LöH
|
Andres Löh is a long-time functional programming enthusiast. He has started using
Haskell in 1997 while being an undergraduate studying mathematics.
More about Andres Löh
|
|
PODCAST HASKELL FOR EMBEDDED DOMAIN-SPECIFIC LANGUAGES
This session took part at the Functional Programming eXchange 2012. You can view the other 19 podcasts here.
|
|
|
|
OTHER SCALA & F# EVENTS
|
Progressive .NET Tutorials 2012
CONFERENCE (3 DAYS)
London, Tuesday, May 29th
BOOK NOW!
|
|
2012 Progressive F# Tutorials NYC
CONFERENCE (2 DAYS)
New York City, Tuesday, June 5th
BOOK NOW!
|
|
The London Python Group
FREE EVENT:
Python code review
London, Wednesday, June 6th
|
|
London Scala Users' Group
FREE EVENT:
Real-World Scala Project
London, Wednesday, June 13th
|
|
GeekOut 2012
CONFERENCE (2 DAYS)
Tallinn, Thursday, June 14th
BOOK NOW!
|
|
Typesafe's Fast Track to Scala
2 DAY COURSE. Featuring Trond Bjerkestrand London, Monday, June 18th
|
|
QCon New York 2012
CONFERENCE (3 DAYS)
New York, Monday, June 18th
BOOK NOW!
|
|
Typesafe's Advanced Scala
2 DAY COURSE. Featuring Heiko Seeberger London, Wednesday, June 20th
|
|
|
|