F# all the things, Java equality, Hole-driven Haskell


Details
This month we are delighted to present three first-time BFPG speakers!
If you find yourself stuck outside the venue, please contact Matt on 0431926131.
match C# with Some(F#)
Phil de Joux
If F# is being sold as a niche language, it's being sold short. F# really can do all the things C# can, except perhaps to be generated by tooling wizards. Get your hands on default immutability, first class functions, algebraic data types and persistent data structures, with a compiler that knows your types, makes them generic and gets out of your way.
Phil is a rock climber and hang glider pilot at heart, and a mathematical modeler by training, but he's also been programming C++ and C# for many years. More recently, he's discovered that F# makes his work easier and more enjoyable, and he's used F# in commercial projects, for analysing time-series data in the REPL, pulling in web services with type providers, and distributing messages with mailbox processors. Phil was the technical reviewer for the book Expert F# 3.0, by Don Syme et al.
Value equality for Java
Dylan Just
This talk examines some issues with the equals method in Java, and presents some alternative approaches, including simulating Haskell-style type classes in Java. We'll look at the roles of types and type checking, and what it really means for two values to compare equal.
Dylan is a mad keen functional programmer that loves to code. His hobbies include sticking computers in strange cases and arguing with Erik Meijer on Twitter. He can be found at Ephox yabbering on about types and compulsively recabling the server room. Blog: http://techtangents.com Twitter: @techtangents (http://twitter.com/techtangents)
Hole driven development
Greg Davis
When writing Haskell programs, we tend to use lots of polymorphic types. That's good! We can reuse those pieces, thanks to the types. But when implementing polymorphic functions, it can sometimes be difficult to see how things fit together, especially if we don't have a systematic approach.
At a recent Haskell course taught by members of this group, I discovered such an approach, which we call "hole driven development". I'll demonstrate the technique, including some tricks to get help from the compiler. I'll also preview an exciting new language feature which will hit the Haskell platform soon.

F# all the things, Java equality, Hole-driven Haskell