Keynote: Delimited Continuations, Demystified by Alexis King | Lambda Days 2023

preview_player
Показать описание


Although delimited continuations are not a new idea, they have recently seen renewed interest from several programming language communities as a powerful tool for implementing schedulers and effect systems.

Unfortunately, there is a major remaining obstacle to their adoption, namely that most programmers find them utterly opaque. To help fix that, this talk provides an overview of what delimited continuations are, how they work, and why they’re useful from a perspective accessible to the working programmer.

Let's keep in touch! Follow us on:
Рекомендации по теме
Комментарии
Автор

I think this is the first time I've fully grasped delimited continuations. Thanks!

Swampdragon
Автор

You know its likely to be a good talk when Simon Payton Jones is asking questions

jpratt
Автор

the best way to understand continuations is to learn continuation passing style, you can do continuations in any program that supports higher order functions, the problem is that people is scared away of CPS as something the compiler should do, then they get frustrated because they don't understand what the compiler is doing.

laughingvampire
Автор

don't say that is boring, say that is a simple mechanism that allows for powerful flow control

laughingvampire
Автор

44:17 people have CoW-ed memory pages when they fork() since time immemorial... Why not map those memory as CoW instead of copying pessimistically?

LDRAGONFLYL
Автор

59:10 because other programming languages are too deep into an unhealthy relationship with dependency injection, they can no longer conceptualize the beauty of proper one-shot delimited continuation 😅

LDRAGONFLYL
Автор

... so it is just like the do sugar for monads ... just more versatile and normal ...

Verrisin
Автор

This sounds a lot like the handlers in Unison

TankorSmash
Автор

very clear explanation of a complex topic, the idea doesn't seem appealing tho. complicates the programmers model of program execution and messes with simple controll flow. hard pass for me.

Edit: Thinking about it a bit more makes me more positive: They are an excellent notation to describe the wack control flow that language features like exceptions or exiting have.

blacky