Linguistics and Compilers
Compilers are tools typically used to create binary we call software. Kenneth Miller has some interesting thoughts on extending the metaphor (and tools) to both human and programming languages.
Functional Game Development
While functional programming is making huge inroads in areas like web development and distributed computing, there is one kind of software where its use is still rare: games. The vast majority of games today, from the small indie variety up to triple-A titles, are written in a mostly standard way, filled with mutable variables and large object hierarchies.
Concepts of functional programming is made much harder when the developer is also trying to learn a new language, like Haskell, Scala or Clojure at the same time. With that in mind, we focus on relating functional concepts in a common language: Java.
Practical Functional Programming: The Virtues of Laziness
When you're new to Functional Programming, or struggling to learn it after coming from an Object Oriented background, you're likely to ask: "This is so different, what's the practical aspect?"
Introduction to F#
With a pre-recorded presentation, we explore the unique features that F# offers to functional developers: functions, composition, piping, discriminated unions, active patterns and computation expressions.
Parsing Text with a Virtual Machine
As the saying goes, all the good ideas in computer science came from the 1970s. We'll explore a new library for parsing text that calls upon an old, unconventional approach: compiling parsers to custom bytecode and then running it through an interpreter. Along the way, we'll learn about how PEGs fit a sweet spot between regular expressions and heavier parsers, and how Clojure is an ideal language for writing simple compilers.