Software EngineerSimple Machines
Tony has been deploying functional programming solutions for 15 years, using a variety of programming languages, but Haskell and Scala primarily.
Tony teaches functional programming at the University of Queensland and for professional programmers with a view toward producing a viable commercial result. Using a principled and passionate approach to teaching functional programming and sharing ideas, Tony enjoys exploring the consequences for software development to provide a rewarding experience for everyone involved.
Talks I've Given
-
Trees That Grow
Featuring Tony Morris
Trees That Grow *(Najd, Shayan and Peyton-Jones, Simon, 2016)* is proposed as a solution to a problem that regularly affects authors of deep and detailed algebraic structures. A data structure denoting a syntax tree for a programming language is typically very intricate and a small alteration...
language -
Zippers
Featuring Tony Morris
The term zipper is a colloquial used to describe n-hole (most often, 1-hole) contexts. That is, a data structure that has a _hole_ or _pointer_ focused on a specific element with the ability to efficiently traverse to its neighbouring elements, providing an elegant solution for the need to...
concept -
Let's Lens
Featuring Tony Morris
Let's Lens presents a series of exercises, in a similar format to the Data61 functional programming course material. The subject of the exercises is around the concept of lenses, initially proposed by Foster et al., to solve the view-update problem of relational databases.
The theories around...
language -
Functional Programming in Aviation
Featuring Tony Morris
In this talk, we have a look at some of the low-hanging problems in general aviation and how functional programming can be applied to provide significant improvements in efficiency and air safety. The current solutions to problems such as navigation, traffic/terrain collision avoidance and...
languages -
Introduction to Functional Programming
Featuring Tony Morris
We will be spending the day learning the fundamentals of Functional Programming (FP) using the Haskell programming language. The exercise material will be a condensed selection of the Data61/CSIRO Functional Programming course which is often expanded to run over three days. Participants should...
languages -
Functional Programming in Aviation
Featuring Tony Morris
In this talk, we have a look at some of the low-hanging problems in general aviation and how functional programming can be applied to provide significant improvements in efficiency and air safety. The current solutions to problems such as navigation, traffic/terrain collision avoidance and...
languages -
Functional Programming in Aviation
Featuring Tony Morris
In this talk, we have a look at some of the low-hanging problems in general aviation and how functional programming can be applied to provide significant improvements in efficiency and air safety. The current solutions to problems such as navigation, traffic/terrain collision avoidance and...
languages -
Parametricity, Functional Programming, Types
Featuring Tony Morris
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...
software-development -
Let’s Lens
Featuring Tony Morris
The goal of this workshop is to develop skills and familiarity with the concepts of the Haskell lens package. The audience should expect to achieve a fundamental grounding in these concepts and a clear path to further develop this understanding independently.
The workshop consists of a series of...
technique -
Parametricity, Types, Documentation, Code Readability
Featuring Tony Morris
Parametricity builds on the work of Philip Wadler and Danielsson et al. It is a robust, ubiquitous technique to improve code readability in all programming environments.
This talk will explore the specific details of parametricity. Some of the theoretical underpinnings will be examined with a...
software-development -
A Modern History of Lenses
Featuring Tony Morris
Lenses are bidirectional transformations between pairs of connected structures. Asymmetric lenses, where one of those two connected structures is taken to be primary, have been extensively studied. Lenses were first proposed to solve the view-update problem of tree-like data structures by Foster...
technique -
Parametricity, Types are Documentation
Featuring Tony Morris
This talk will build on the work of Philip Wadler (1) and Danielsson et al (2) to demonstrate using types to document source code behaviour and to assist in reasoning about code. Specifically, the concept of parametricity is used to tacitly eliminate possibilities in code behaviour leaving only a...
technique -
Argonaut: Purely-Functional JSON in Scala
Featuring Tony Morris
Argonaut is a purely-functional library for dealing with JSON in Scala. Argonaut utilises advanced functional programming techniques that emphasise correctness and performance without sacrificing convenience. Argonaut provides zippers and lenses for efficient navigation and modification of...
technique