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