Тёмный

LambdaConf 2015 - A Practical Introduction to Haskell GADTs Richard Eisenberg 

Confreaks
Подписаться 42 тыс.
Просмотров 19 тыс.
50% 1

A burgeoning Haskeller soon discovers that proper use of descriptive types helps to capture real-world ideas, catches errors, aids in refactoring, speeds development, and indeed makes programming more fun. But, once that Haskeller has drunk the well-typed Kool-Aid, where to go from there? The answer: even more types! A Generalized Algebraic Datatype (GADT), at its core, allows a compiler to make different assumptions about types within different branches of a pattern match. Leveraging this power allows a programmer to encode detailed invariants in a datatype or algorithm and have these invariants checked at compile time. Clever use of GADTs also lets you remove certain uses of unsafeCoerce, as long as these can be proved safe. This workshop will be a hands-on, interactive tutorial on using Haskell GADTs in a practical setting.
Help us caption & translate this video!
amara.org/v/HblS/

Наука

Опубликовано:

 

28 дек 2015

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 11   
@AlexBerg1
@AlexBerg1 6 лет назад
So thankful that LambdaConf organizers decided to get confreaks to come to record the sessions. This talk was only helpful to me years after I attended this talk. Also thankful to this speaker for coming to share his knowledge. So nice.
@edvardm4348
@edvardm4348 7 месяцев назад
Eisenberg is such an amazing Haskell teacher. Really enjoyed his series in @Tweag, hope I could get more of these
@robertpeszek6892
@robertpeszek6892 7 лет назад
Very nice tutorial, Thank you!
@haskelltype4627
@haskelltype4627 6 лет назад
Superb tutor!
@micknamens8659
@micknamens8659 2 года назад
It's always frustrating that the questions from the audience are (almost) not audible. Please provide them as subtitles (embedded in the video itself, not (only) in the cc) or as voice-over. Thanks
@pewpewpew8613
@pewpewpew8613 2 года назад
I absolutely did not understood the second task and this Elem type. I spend couple of hours to understand this type and how it correlates with function get and I failed. But nevertheless, when I opened editor and started writing code I somehow implemented working function get. Indeed, there is only one way to do this, but even having written a function, I do not fully understand how it works and how in general it was possible to come up with such a thing. To be honest, when I finished this function, I didn't even immediately understand how to use it. That feeling when you managed to do something, but you don't feel any satisfaction from it.
@philnguyen0112
@philnguyen0112 2 года назад
It's an idea that's natural to people who are used to theorem proving, but not obvious to most programmers. The idea is that here you can't just pass in an arbitrary number, because you don't know what type the element at that index is, or if it even exists. So here you pass a "witness" (of type Elem ts t) that you know there's an element of type (t) in the list of type (HList ts). The structure of the type (Elem ts t) is similar to unary Natural number (e.g. N ::= Z | S N), but richer, encoding the inductive definition of what it means to know that an element is in the list.
@EchoNolan
@EchoNolan 8 лет назад
Please mic the audience next time :)
@polypus74
@polypus74 8 лет назад
+Echo Nolan with headphones they are audible, just
@realYuanW
@realYuanW 4 года назад
the repo github.com/goldfirere/glambda
Далее
"Propositions as Types" by Philip Wadler
42:43
Просмотров 125 тыс.
Richard Eisenberg on Dependent Types
48:28
Просмотров 4,1 тыс.
Production Haskell - Reid Draper
1:06:34
Просмотров 18 тыс.
The Future of Programming with Richard Eisenberg
59:38
George Wilson - The Extended Functor Family
21:57
Просмотров 15 тыс.
Higher-order Type-level Programming in Haskell
21:28
Просмотров 3,5 тыс.
Delivering Safe C++ - Bjarne Stroustrup - CppCon 2023
1:29:16
XIAOMI для настоящих МУЖИКОВ!
0:34
Просмотров 157 тыс.
Mac Studio на intel и 96gb? #apple #macstudio
0:50
Просмотров 213 тыс.
Lid hologram 3d
0:32
Просмотров 9 млн
Урна с айфонами!
0:30
Просмотров 7 млн