Загрузка страницы

MuniHac 2022 - Friday, October 7 - Joachim Breitner: Getting recursive definitions off their bottoms

Haskell claims to be a declarative language, where you just write down some equations, and suddenly the variables contain the solution to these equations. This works even with recursive equations, but only in some cases: defining recursive functions, of course, but also cyclic data structures. One can even apply so-called knot-tying tricks, where a lazy data structure is filled with values that refer to that data structure! For example, one can very elegantly calculate the reachable nodes in a graph.

… until the graph is cyclic, and suddenly our nice elegant Haskell program silently runs in circles and will not produce an answer.

This is unfortunate: The involved equations, although recursive, do nicely declaratively describe the solution we want! So let’s make it happen!

We’ll see types (Booleans, Sets) that seem to behave just like the normal ones, but recursive definition somehow magically produce the expected result. And all that in pure code, no monads anywhere! We’ll see a few use cases that can suddenly be solved much more elegantly.

Then we’ll look under the hood of this (arguably) safe API, won’t be deterred by unsafePerformIO, and find some very imperative, monad-infested, concurrency-worried code that implements a form of “propagator”. We’ll notice that there is plenty we can do to improve their performance, but won’t actually go there. Instead, we’ll turn back to the “pure” interface and discuss together if that is still really “pure”, and what does that mean anyways.

Видео MuniHac 2022 - Friday, October 7 - Joachim Breitner: Getting recursive definitions off their bottoms канала TNG Technology Consulting GmbH
Показать
Комментарии отсутствуют
Введите заголовок:

Введите адрес ссылки:

Введите адрес видео с YouTube:

Зарегистрируйтесь или войдите с
Информация о видео
7 октября 2022 г. 18:38:25
01:03:45
Другие видео канала
Big Techday 23: Glean: Query your Code [EN] - Simon Marlow, Meta ResearchBig Techday 23: Glean: Query your Code [EN] - Simon Marlow, Meta ResearchMuniHac 2020: Duncan Coutts - Contravariant Logging: How to add logging without getting grumpyMuniHac 2020: Duncan Coutts - Contravariant Logging: How to add logging without getting grumpyBig Techday 22: Mindblowing P2P Stealth App [EN] - Mathias Buus Madsen, Holepunch IncBig Techday 22: Mindblowing P2P Stealth App [EN] - Mathias Buus Madsen, Holepunch IncMuniHac 2020: Andrew Lelechenko - Polynomials in HaskellMuniHac 2020: Andrew Lelechenko - Polynomials in HaskellvBTD13: Startup by Accident - Teja PhilippvBTD13: Startup by Accident - Teja PhilippTrailer vBTD13: Künstliche Intelligenz in der Chemie: Computer und Wissenschaftler Hand in HandTrailer vBTD13: Künstliche Intelligenz in der Chemie: Computer und Wissenschaftler Hand in HandMuniHac 2022 - Saturday, October 8 - Krzysztof Gogolewski: Quines and metaprogrammingMuniHac 2022 - Saturday, October 8 - Krzysztof Gogolewski: Quines and metaprogrammingSemantic fingerprinting: Democratising natural language processingSemantic fingerprinting: Democratising natural language processingBTD11: Hilfe, Kind im Brunnen - Systematisch technische Schulden abbauenBTD11: Hilfe, Kind im Brunnen - Systematisch technische Schulden abbauenQuantum vs Classical Optimization: A Status Update on the Arms RaceQuantum vs Classical Optimization: A Status Update on the Arms RaceTale of two Cities: the Future of Applied Smart Cities on Cities and Towns - Barcelona and BeasainTale of two Cities: the Future of Applied Smart Cities on Cities and Towns - Barcelona and BeasainBTD12: Building a Useful Chatbot: Beyond the ML and NLP, Dr. Andreea HossmannBTD12: Building a Useful Chatbot: Beyond the ML and NLP, Dr. Andreea HossmannHyperloop: Designing and Building the Future of TransportationHyperloop: Designing and Building the Future of TransportationDie Zukunft der Hardware-Entwicklung - Brauchen wir neue Systemkonzepte für Künstliche Intelligenz?Die Zukunft der Hardware-Entwicklung - Brauchen wir neue Systemkonzepte für Künstliche Intelligenz?BTD21: Brain Computer Interfaces Demystified [DE] - Förtsch, Mayer, Endres, TNGBTD21: Brain Computer Interfaces Demystified [DE] - Förtsch, Mayer, Endres, TNGBTD21: IoT Device Data Processing at KONUX from Zero to One [EN] - Marc Gaines, KONUX GmbHBTD21: IoT Device Data Processing at KONUX from Zero to One [EN] - Marc Gaines, KONUX GmbHMuniHac 2020: Nicolas Wu - Persistence makes a DifferenceMuniHac 2020: Nicolas Wu - Persistence makes a DifferenceBTD12: Building a Self-Driving RC Car, Bert Jan SchrijverBTD12: Building a Self-Driving RC Car, Bert Jan SchrijverBig Techday 23: Generative Data Calibrates the Sky [EN] - Dr Tamás Varga, LMU MunichBig Techday 23: Generative Data Calibrates the Sky [EN] - Dr Tamás Varga, LMU MunichBTD21: Have you secured your DevOps recently? [EN] - Dr. Benjamin Goose, Dr. Christoph Niehoff, TNGBTD21: Have you secured your DevOps recently? [EN] - Dr. Benjamin Goose, Dr. Christoph Niehoff, TNG
Яндекс.Метрика