Skip to content

Parsers From Scratch + Zippers

Photo of Ben Kolera
Hosted By
Ben K. and Nick P.
Parsers From Scratch + Zippers

Details

Parsers from Scratch - Fraser Tweedale

Parser combinators - functions to assemble big parsers from little ones - are an instructive example of composability and reuse made possible through FP, and building one is a useful (and common!) exercise for learners seeking through practical application a solid understanding of abstractions such as applicative functors and monads.

In this talk, we will briefly examine some parsing libraries available for Haskell and discuss their relative benefits and drawbacks. Then we will ignore everything we just saw and build a parser combinator library from scratch. Moreover, our parser will be abstracted over the "whole" and "element" input types - a more general result than most parsers.

I will conclude with a summary of some topics for further study including important parser design decisions, optimisations and efforts to unify parsing and pretty printing.

Zippers - George Wilson

Immutable data-structures are the bread and butter of functional programming. Advantages of immutability include the persistence of old versions, the thread-safety, and the ability to reason about these structures. However, repeatedly modifying data deep within a nested immutable structure can have severe performance costs.

Structures known as 'zippers' allow for efficient traversal and modification of immutable data-structures. In this beginner-to-intermediate level talk, zippers will be motivated and introduced in Scala. A successful practical application of zippers in the Argonaut JSON library will be examined.

Sponsors

Thanks to Skedulo for the Pizza and thanks to NICTA for hosting us!

Photo of Brisbane Functional Programming Group (BFPG) group
Brisbane Functional Programming Group (BFPG)
See more events
NICTA Queensland
70/72 Bowen St Spring Hill, Queensland 4000 · Brisbane