Tony Morris


Senior Software Engineer at NICTA, Functional Programming Educator

Tony Morris is a software product developer who has deployed functional programming techniques in industry for over 10 years. Tony teaches at the tertiary level and for professional programmers with a view toward producing a viable commercial result. Tony is currently a Senior Software Engineer at NICTA where he is tasked with promoting and educating on functional programming for the benefit of all Australian software developers.

Tony takes a fastidious, principled approach to functional programming both when deployed in practice and when in a learning environment to ensure maximum yield from the effort. Tony believes that exploring principles and the following consequences provides a rewarding experience for all involved.

YOW! Lambda Jam 2016 Brisbane

The Expression Problem and Lenses


The Expression Problem (TEP), a new name by Phil Wadler for an old problem, has presented challenges to programmers for decades. The practical considerations are particularly pertinent in safe, purely-functional programming where accurate representations of software models are a primary goal.

Proposed approaches to TEP have consistently fell short of a reasonable solution.

In this talk, I will use the Haskell lens library to propose a resolution to TEP that achieves all the desired benefits, with minimal penalty. I will first describe The Expression Problem, the principles of the lens library, then demonstrate a principled resolution to TEP.

Introduction to Functional Programming


In this workshop, we prepare for YOW! Lambda Jam Conference with a hands-on introduction to the principles of Functional Programming. We will solve simple problems using the Haskell programming language, then move up in difficulty as time permits. This workshop emphasises hands-on problem-solving, with follow-up discussion. One important goal is to provide an industry programmer with a basic understanding of functional programming principles and vocabulary. As a consequence, a participant is then equipped to better understand some of the topics to be discussed in the Lambdajam conference itself.


Yes, you will know what monad means at the end of the day. Importantly, you will have a firm grasp of the practical application of monads, in any programming environment. You will be able to demonstrate to your friends and colleagues the meaning and application of this useful programming tool, along with many others.


Participants are required to bring a suitable development machine (portable) for working through the exercises. You will also need to install Glasgow Haskell Compiler ( version 7.8 or higher on that machine. Alternatively, two or more people may choose to work in a group on one development machine; this is highly encouraged.