Welcome to Functional Pe(a)rls: Huey's Zipper

Functional Pe(a)rls: Huey's Zipper

By osfameron from Italia.pm,London.pm,NorthWestEngland.pm,Edinburgh.pm
Date: Saturday, 23 August 2014 14:50
Duration: 50 minutes
Target audience: Any
Language: English
Tags: ducks fp haskell immutable moo perl pure trees zipper

You can find more information on the speaker's site:


"Associative arrays" are a powerful and flexible data-structure for mapping keys to values. In Perl, we usually call them "hashes", but in fact a hash table is only one concrete implementation of the concept.

In the world of Functional Programming, using hash tables to implement associative arrays turns out to have some fairly serious issues. Most implementations use binary trees instead. We'll look at why that is, and some of the benefits and trade-offs of each approach.

We'll also look at a new implementation of AA Red-Black trees in Perl and Moo. We'll see some of the challenges of writing immutable code in Perl, and also learn about ducks, and the awesome power of Huey's Zipper (sic).


Attended by: Jean Forget, Nicholas Clark, Thomas Klausner (‎domm‎), Gianni Ceccarelli (‎dakkar‎), Bernhard Schmalhofer (‎bernhard‎), Michael Lush, Dagfinn Ilmari Mannsåker (‎ilmari‎), osfameron, Anton Berezin (‎Grrrr‎), Dmitry Karasik (‎McFist‎), Sue Spence (‎virtualsue‎), Jonathan Worthington (‎jnthn‎), Wolfgang Schemmel (‎Perleone‎), Matthew Wilson (‎diakopter‎), Roman Daniel (‎wayan‎), John Lightsey, StrayTaoist, David Leadbeater (‎dg‎), Lukas Mai (‎mauke‎), Olivier Duclos (‎odc‎), steve mynott (‎itz‎), Herbert Breunung (‎lichtkind‎), Kang-min Liu (‎gugod‎), Michael Bochkaryov (‎Rattler‎), Neil Hemingway (‎neilh‎), Matthias Zeichmann, Paul Evans (‎LeoNerd‎), David Schmidt (‎davewood‎), Heinz Knutzen, Patrick Ringl (‎pari‎), Ovidiu Satmari (‎ovidiu.satmari‎), Jean-Baptiste Mazon, Julien Fiegehenn (‎simbabque‎), Zhivko Zhelyazkov (‎ison‎), Adina Iulia Dumitru, Kerstin Puschke (‎titanoboa‎), Alexandru Strajeriu (‎Deluxaran‎), Robert Rothenberg, Dmitry Yaskolko (‎sotona‎), Gleb Panshin (‎panshin‎), Rikus Goodell, Theo van Hoesel (‎vanHoesel‎), Bradley Andersen (‎elohmrow‎), Ivan Baidakou (‎basiliscos‎), Marc Egea i Sala (‎meis‎), Jan Seidl (‎JaSei‎), Andrew Nugged (nugged), Paul Cochrane (‎ptc‎), Filip Andres, Martin Cermak, Upasana Shukla (‎upasana‎), Xan Tronix (‎xan‎), Mihai Safta (‎SDCM‎), Stefan Dragnev, Dimitar Mitov, Kamen Naydenov (‎pau4o‎), Michal Špaček (‎skim‎), Jose Luis Martinez Torres (‎JLMARTIN‎), Marco Pessotto (‎melmothx‎), Ksenia Bobrova, Darina Serafimova, Borislav Nikolov (‎jackdoe‎), Zlatin Stanimirov, Diana Vultur, Ioana Falcusan, Kalman Bodor, Cristina Mavriche (‎suns‎), Daniel Moldovan, Anca Davidel, Oana Raluca Rusu, ignat ignatov, Nikolaos-Digenis Karagiannis (‎Digenis‎), Jan Kittler (‎Kita‎), Petar Barzakov,