Nick is a software developer for Veitch Lister Consulting, an engineering consultancy, where he implements transport simulation software using Haskell, Ruby and Java. He has a varied development background, spanning web development with Rails, iOS application development and numerical computing, and has contributed to a number of functional programming libraries, including Functional Java, Scalaz and FunctionalKit.
He is excited about the growing interest and experience in functional programming by the community, and hopes to further that excitement by spreading his practical programming experience with Haskell.
YOW! Lambda Jam 2014 Brisbane
Pipes by Example
With the Haskell Streaming Library War waging around us, we will choose a side, dive into Pipes, and build a “working programmers” understanding of what Pipes is and how we can use it in our day-to-day programming.
Pipes is at its core a very general library, and can be used to solve a variety of problems far beyond streaming. It’s a useful replacement for a number of programming patterns that most programmers encounter day to day, including logging, working with cooperative programs (such as callbacks), and of course, parsing.
This talk will explain the building block functions and types used to construct and evaluate Pipes, using a number of examples drawn from both the pipes library itself, and other sources. We will learn how to reason and compose pipes, a key requirement for any functional program.
By the end, we shall see that pipes is a useful addition to the Haskell toolchest, that has general application to a range of problems.
Several libraries that enable action game programming in Haskell have emerged, allowing us to play with game ideas in the strictest of functional programming environments. Come along for a brief introduction to game programming using Netwire, a library for functional reactive programming in Haskell. You will learn, perhaps surprisingly, how well functional programming fits with game programming models. In deconstructing the Wire type, we’ll learn useful methods for thinking about complicated parametric data types.
Our case studies are Flying Sheep Battles, a 2-player physics-based game written in Haskell over a weekend, and the presentation itself, which is also a Netwire application.