Toolbox

Our Emperor Sponsors

  • InternetNZ
  • Google
  • IBM
  • HP

<-- Back to schedule

Using Functional Programming Techniques In Your Favourite Language

Time:16:45 - 17:30
Day:Thursday 21 January 2010
Location:Renouf 1 (MFC)
Project: software development

Over the last few years, functional programming languages have gained an increased visibility. In some cases they provide a natural solution to a particular sort of problem (for example, highly concurrent programming). At other times, they provide a different was to express a style of algorithm. Ultimately, however, all programming languages run on the same types of hardware and execute the same low-level instructions. Whilst the techniques used are often syntactically easier in one language or another, the algorithms and data structures are naturally portable.

This talk will provide some examples of useful idiomatic functional programming techniques that deserve greater awareness amongst developers using more procedural languages. A lot of the emphasis is on thinking about data structures as the driver for algorithms and how to process large data structures using only a view of a small number of elements. A simple example is computing a result from a long sequence of inputs, processing each input once, in turn, without random access to other elements.

I want to give some ideas on how to think about algorithms and data structures and appreciating the value in using ideas from other programming languages, without having to switch to coding in them completely.

No specific knowledge of programming language is assumed. Small code fragments from Scheme, Erlang, Haskell, Python and C might be visible during the talk, but all will be explained as we go along.

Malcolm Tredinnick

Malcolm has been a Linux user since 1993 and contributed his first acknowledged open source patch whilst trying to fix a build bug in 1996. An active GNOME contributor in the first half of this decade, these days, the bulk of his community contributions go towards the Django project and Python community in general.