Skip to content

Latest commit

 

History

History
126 lines (105 loc) · 5.88 KB

index.rst

File metadata and controls

126 lines (105 loc) · 5.88 KB

The inaugural Functional Programming Miniconf is being held on Tuesday 2nd February during linux.conf.au 2016, in Geelong, Victoria.

This one-day miniconf is for FP beginners and practitioners alike. Attendees will learn FP concepts, tools and techniques and be challenged to think about programming in new ways and embrace the benefits of FP in their workplaces and open source communities.

Registration

Registration is required to attend linux.conf.au, which runs from 1st - 5th February 2016. Miniconf-only registration is available from $90. Student, hobbyist and professional rates are available for the full conference. See the Registration Information page for details.

Schedule

About FP

*Functional programming* is an approach to programming that models computation as the evaluation of mathematical functions. It draws from fields of math including lambda calculus and category theory and emphasises *purity*, *immutability*, *abstraction* and *composability*. These qualities underpin FP's reputation for succinctness, comprehensibility and the ability to move fast and not break things.

In recent years awareness and use of functional programming has grown with the emergence of new languages (e.g. Scala, Clojure, Idris), ongoing advancement of older functional programming languages (e.g. OCaml, Haskell) and other languages adopting features to better facilitate functional programming (e.g. Java 8, C# 3.0).

Some popular open source functional programming languages include:

  • Haskell: pure, lazy, statically typed
  • Scala: statically typed functional language for the JVM
  • Clojure: JVM Lisp dialect with powerful concurrency primitives
  • Erlang: dynamically typed with focus on fault tolerance and real-time applications
  • F#: statically typed FP for Common Language Infrastructure

Some well-known open source programs written in functional programming languages include:

  • xmonad (window manager; Haskell)
  • git-annex (Git-based archiving tool; Haskell)
  • CouchDB and Riak (databases; Erlang)
  • Pandoc (universal document converter; Haskell)
  • Lichess (Internet chess server; Scala)
  • MirageOS (Unikernel toolkit; OCaml)
  • ejabberd (XMPP server; Erlang)
  • Puppet (configuration management; Clojure)