BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//Talks.cam//talks.cam.ac.uk//
X-WR-CALNAME:Talks.cam
BEGIN:VEVENT
SUMMARY:Unrolling Lists - Jake Bennett-Woolf (University of Cambridge)
DTSTART:20241118T130000Z
DTEND:20241118T140000Z
UID:TALK224545@talks.cam.ac.uk
CONTACT:Ariadne Si Suo
DESCRIPTION:Lists are used throughout functional programming and the idea 
 of defining lists with multiple heads for optimisation is almost as old as
  the subject itself. We present a theoretical justification for $\\mathbb{
 N}$-indexed (multi-headed) lists as the natural datatypes that comes from 
 unrolling the defining equation $X = 1 + A \\times X$ for lists\, and give
  $\\mathbb{N}$-indexed implementations of functions that normally use inte
 rmediate lists and that satisfy certain conditions.\n\nWe then discuss sta
 ged metaprogramming and use this to speed up these functions so that they 
 are at least as fast as their usual list counterparts. Our guiding example
 s will be tail-recursive $\\map$ and $\\filter$ for lists in OCaml.\n
LOCATION:FS07\, Computer Laboratory
END:VEVENT
END:VCALENDAR
