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! West 2016 Perth

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.

Parametricity, Functional Programming, Types


In this talk, we define the principle of functional programming, then go into detail about what becomes possible by following this principle. In particular, parametricity (Wadler, 1989) and exploiting types in API design are an essential property of productive software teams, especially teams composed of volunteers as in open-source. This will be demonstrated.

Some of our most important programming tools are neglected, often argued away under a false compromise. Why then, are functional programming and associated consequences such as parametricity so casually disregarded? Are they truly so unimportant? In this talk, these questions are answered thoroughly and without compromise.

We will define the principle of functional programming, then go into detail about common problems to all of software development. We will build the case from ground up and finish with detailed practical demonstration of a solution to these problems. The audience should expect to walk away with a principled understanding and vocabulary of why functional programming and associated techniques have become necessary to software development.