Please Note: This venue has stronger space restrictions than our usual spot, and so we have a limit of 80 outside attendees. If you don't think that you will be able to attend, please don't RSVP. If you thought you could attend, but now don't plan to, please cancel your RSVP. Thanks, and sorry for the bother.
Greg Wright will talk about the design of the Wheeler library, which adds the ability to do symbolic algebra to Haskell.
Since the earliest days of programming, symbolic algebra has been a laboratory for the development of functional programming. The talk will cover a bit of this history to explain basic aspects of the library: which data structures are used (and why), and the design choices made to allow symbolic expressions work smoothly with ordinary arithmetic expressions. A particular strength of the library is its ability to work with non-commuting objects (for example, matrices); how this was done will be discussed.
Another key goal of Wheeler is extensibility, allowing users to add their own mathematical objects. The talk will show how this runs smack into the so-called "Expression Problem". The second half of the talk will look at a couple approaches to solving the expression problem, seeing how close we can get to the goal of extending the library while still understanding our code.
To show this isn't all just blowing smoke, the Wheeler library will be demonstrated on a hard real-world problem. As an added bonus, at no extra charge, the talk will be (mercifully) almost monad free!
Greg Wright is an experienced Haskell hacker, who has worked on a variety of projects in telecommunications, signals, embedded systems, and wireless design. He's also an engaging speaker who has presented multiple times at the Commercial Users of Functional Programming conference (latest video here: http://cufp.org/videos/fourteen-days-haskell).