Title: The Manchester Lambda Lounge
Location: MadLab ground floor
Description: A group dedicated to popularising Functional Programming, and exploring new concepts in programming languages.
Start Time: 19:00
End Time: 21:00
This monday we’ll be meeting at the usual place (Madlab) and time (7pm) to hear Ian Johnson talk about his implementation of a Python DSL using Arrows.
Arrows allow the programmer to abstract and combine computation. Arrows present operators with which pipelines of computation can be constructed. Arrows are related to Monads but allow for more interesting pipelines to be constructed, allow computations with more than one input, and allow, possibly partially, static computation. It has been said that, “If your application works fine with monads, you might as well stick with them. But if you’re using a structure that’s very like a monad, but isn’t one, maybe it’s an arrow.”
Ian has been working on the MosesCore project, funded by the European Commission 7th Framework Programme. “MosesCore aims to encourage the development and usage of open source machine translation tools. Computational pipelines occur often in machine translation systems and it was deemed necessary to design an easy method to compose and share pipelines and pipeline components. During this work a Python library called Pypeline. was written to support arrows. It defines monadic and arrow types and allows programmer to compose pipelines using helper functions. PCL, on the other hand, is a DSL that supports arrow operators so that programmers may easily construct and share pipelines, or bits of pipelines.
Ian will be taking you through the Pypeline library and, hopefully, you’ll pick up what arrows are all about. Then we’ll dive into PCL by looking at the packaged examples.