Lambda Days 2022

2022

List of videos

Keynote: The Power of Toys | David Nolen | Lambda Days 2022

The Power of Toys | David Nolen | Tools for Thought ABSTRACT At Vouch we build digital keys and fleet management for the automotive industry. While unit tests are valuable for verifying some properties of the system, global properties of our blockchain-based solution are quite challenging to rigorously test with traditional testing methods. The most trivial idea behind functional programming - orienting programs around immutable values rather than stateful objects - naturally guided us towards building a toy model of the system in which all state of interest is lifted into a single value. Now we have building blocks that always compose - each part snaps together regardless of the ordering. Sprinkle on some property-based testing and we can generate complex scenarios of interaction impractical to write by hand, including showing that upgrading / downgrading the source code of the deployed system will always lead to coherence. Many of these ideas were pulled together from toy examples found in educational functional programming texts. Toys can indeed be far more powerful than they appear! • Follow us on social: Twitter: https://twitter.com/LambdaDays LinkedIn: https://www.linkedin.com/company/lambda-days • Looking for a unique learning experience? Attend the next Code Sync conference near you! See what’s coming up at: https://codesync.global • SUBSCRIBE TO OUR CHANNEL https://www.youtube.com/channel/UC47eUBNO8KBH_V8AfowOWOw

Watch
Make Illegal States Unrepresentable | Daniel Beskin | Lambda Days 2022

This video was recorded at Lambda Days 2022 -https://www.lambdadays.org/lambdadays2022 Make Illegal States Unrepresentable | Daniel Beskin - Functional Developer ABSTRACT The ideal coined by Yaron Minsky, “make illegal states unrepresentable,” is as simple as it is profound. The benefits of writing software that conforms to this maxim range from easier-to-comprehend code, to a reduced number of bugs (and a reduced number of tests, to boot). This approach to writing code should be applicable in any setting, but strongly-typed functional programming is particularly well-suited to achieving the goal of reducing the number of illegal states of a system. In this beginner-friendly talk, we will see a number of simple techniques that we can apply to our code to get ourselves closer to the ideal of making illegal states unrepresentable. • Follow us on social: Twitter: https://twitter.com/LambdaDays LinkedIn: https://www.linkedin.com/company/lambda-days/ • Looking for a unique learning experience? Attend the next Lambda Days conference near you! • SUBSCRIBE TO OUR CHANNEL https://www.youtube.com/channel/UC47eUBNO8KBH_V8AfowOWOw See what's coming up at: https://codesync.global

Watch
Keynote: Haskell to Hardware compiler Theory & Practice | Christiaan Baaij | Lambda Days 2022

Haskell to Hardware compiler Theory & Practice | Christiaan Baaij | Making circuit design fun for programmers ABSTRACT Clash is a functional hardware description language, but it’s also just a combination of a regular Haskell library with type and function definitions for circuit design and a compiler that translates Haskell programs to digital circuits. In this talk, Christiaan will explain how you can interpret a Haskell program as a digital circuit, the theory behind the inner workings of the Clash compiler, and all the practical problems that were overcome while building the compiler. At the end of the talk, Christiaan will also highlight some large outstanding issues and ideas on how to solve them. • Follow us on social: Twitter: https://twitter.com/LambdaDays LinkedIn: https://www.linkedin.com/company/lambda-days • Looking for a unique learning experience? Attend the next Code Sync conference near you! See what’s coming up at: https://codesync.global • SUBSCRIBE TO OUR CHANNEL https://www.youtube.com/channel/UC47eUBNO8KBH_V8AfowOWOw

Watch
Keynote: Sonic Pi - past, present & future | Sam Aaron | Lambda Days 2022

Sonic Pi - past, present & future | Sam Aaron | Sonic Pi creator ABSTRACT Sonic Pi is an open-source music creation and performance tool. It was initially developed as a postdoc research project to help introduce and teach programming concepts in schools but has since grown into a powerful musical instrument used by live-coding DJs in nightclubs and music festivals. In this talk, we'll explore some of the key technical innovations that power Sonic Pi such as deterministic randomisation and its concurrency model which supports live-hot-swapping of code and the precise manipulation of time. We'll examine how functional programming techniques have both been a major influence and are a critical part of the future - from its roots in Clojure to its future on the BEAM. Expect plenty of live coding, beats, basslines and synth riffs and leave the talk inspired to use your programming skills to become the DJ of the future. • Follow us on social: Twitter: https://twitter.com/LambdaDays LinkedIn: https://www.linkedin.com/company/lambda-days/ • Looking for a unique learning experience? Attend the next Code Sync conference near you! See what’s coming up at: https://codesync.global • SUBSCRIBE TO OUR CHANNEL https://www.youtube.com/channel/UC47eUBNO8KBH_V8AfowOWOw

Watch
What’s new in Gradualizer: Type checking Erlang and Elixir | Radek Szymczyszyn | Lambda Days 2022

This video was recorded at Lambda Days 2022 -https://www.lambdadays.org/lambdadays2022 What’s new in Gradualizer: Type checking Erlang and Elixir | Radek Szymczyszyn - Architect Team Lead ABSTRACT Gradual typing is a bit like static typing, because it provides error messages if your code has types and specs - and any errors, obviously. Gradual typing is also a bit like dynamic typing, because it doesn’t require all the functions to have specs and just agrees when you say: “Trust me, I’m an engineer!” Gradualizer, introduced at Code Beam Stockholm by Josef Svenningsson, is a gradual typechecker for Erlang. I’ll describe some changes, improvements, and challenges we faced and managed to overcome since mid-2021. I’ll also introduce Gradient, an Elixir frontend, and show how to type check Erlang and Elixir code. • Timecodes: 00:00 - 04:36 - Intro 04:37 - 11:46 - Statically Typing Erlang: State of the Art 11:47 - 16:43 - Quantitative Comparison 16:44 - 29:38 - Demo: TypedServer in Elixir with Gradient 29:38 - 39:31 - Qualitative Comparison on Selected Examples 39:32 - 42:27 - Conclusions 42:28 - 44:59 - What's new? What's Left to do? 45:00 - 47:30 - Contribution + QnA • Follow us on social: Twitter: https://twitter.com/LambdaDays LinkedIn: https://www.linkedin.com/company/lambda-days/ • Looking for a unique learning experience? Attend the next Lambda Days conference near you! • SUBSCRIBE TO OUR CHANNEL https://www.youtube.com/channel/UC47eUBNO8KBH_V8AfowOWOw See what's coming up at: https://codesync.global

Watch
Effectful | Paweł Szulc | Lambda Days 2022

This video was recorded at Lambda Days 2022 -https://www.lambdadays.org/lambdadays2022 Effectful | Paweł Szulc - Haskell Developer ABSTRACT In this 20 minutes presentation, Pawel will introduce us to a brand new library called Effectful. It is in fact yet another effects library in Haskell, but potentially one that may finally win the "effects war". Effectful comes with nice ergonomics - similar to what we would find in Polysemy. At the same time, Effectful is blazing fast - internally under the hood, it is implementing the ReaderT pattern. Can we have the best of two worlds? Polysemy-like interface with minimal abstraction costs similar to ReaderT pattern? You will have to join the talk to find out! • Follow us on social: Twitter: https://twitter.com/LambdaDays LinkedIn: https://www.linkedin.com/company/lambda-days/ • Looking for a unique learning experience? Attend the next Lambda Days conference near you! • SUBSCRIBE TO OUR CHANNEL https://www.youtube.com/channel/UC47eUBNO8KBH_V8AfowOWOw See what's coming up at: https://codesync.global

Watch
Why Event Sourcing is not easy | Mateusz Kubuszok | Lambda Days 2022

This video was recorded at Lambda Days 2022 -https://www.lambdadays.org/lambdadays2022 Why Event Sourcing is not easy | Mateusz Kubuszok ABSTRACT Have someone sold you ES as the simple solution to all your problem? Have you been promised that it's "just foldLeft over events"? In this talk we will discuss some real world challenges and solutions to them that you'd better know about before you start your IDE. • Follow us on social: Twitter: https://twitter.com/LambdaDays LinkedIn: https://www.linkedin.com/company/lambda-days/ • Looking for a unique learning experience? Attend the next Lambda Days conference near you! • SUBSCRIBE TO OUR CHANNEL https://www.youtube.com/channel/UC47eUBNO8KBH_V8AfowOWOw See what's coming up at: https://codesync.global

Watch
Functional Parsing for Novel Markup Languages | James Carlson | Lambda Days 2022

This video was recorded at Lambda Days 2022 -https://www.lambdadays.org/lambdadays2022 Functional Parsing for Novel Markup Languages | James Carlson - Elm developer ABSTRACT With functional languages like Elm that target the browser, one can parse and render both classical and novel markup languages in real time, providing authors a pleasant, zero-config tool for writing and distributing mathematical text. The talk will outline how one designs and builds a fault-tolerant parser that provides high-quality, real-time error messages in-place in the rendered text. As case studies we consider two markup languages: MiniLaTeX, a subset of LaTeX, and L1, an experimental markup with a syntax inspired by Lisp. • Timecodes: 00:00 - 04:24 - Markup Languages + Example 04:25 - 14:22 - (Demo) Parser I : Syntax Tree 14:23 - 19:16 - (Demo) Parser II : Shift Reduce Algorithm 19:17 - 23:53 - (Demo) Parser III : Reducibility 23:54 - 30:14 - (Demo) Parser IV : Worked Example 30:15 - 33:55 - Compiler Pipeline 33:56 - 42:39 - QnA • Follow us on social: Twitter: https://twitter.com/LambdaDays LinkedIn: https://www.linkedin.com/company/lambda-days/ • Looking for a unique learning experience? Attend the next Lambda Days conference near you! • SUBSCRIBE TO OUR CHANNEL https://www.youtube.com/channel/UC47eUBNO8KBH_V8AfowOWOw See what's coming up at: https://codesync.global

Watch
Static analysis tools love pure FP | Jeroen Engels | Lambda Days 2022

Static analysis tools love pure FP | Jeroen Engels | Senior software engineer at Humio, a CrowdStrike company ABSTRACT Functional programming languages have many benefits that are often explained from the developer's point of view, such as how easy it is to maintain a codebase. But we rarely look at it from the point of view of tools. Static analysis tools try to infer meaning and intent in order to find bugs and code smells, but they can be very hard to write depending on the features of the analyzed language. We will look at how explicitness, the lack of side-effects and dynamic constructs in pure FP languages empower tools to trivially achieve surprising results that would be nearly impossible with other paradigms. • Follow us on social: Twitter: https://twitter.com/LambdaDays LinkedIn: https://www.linkedin.com/company/lambda-days/ • Looking for a unique learning experience? Attend the next Code Sync conference near you! See what’s coming up at: https://codesync.global • SUBSCRIBE TO OUR CHANNEL https://www.youtube.com/channel/UC47eUBNO8KBH_V8AfowOWOw

Watch
Predicting and Preventing Chaos with Formal Methods in TLA+ | Thomas Gebert | Lambda Days 2022

This video was recorded at Lambda Days 2022 -https://www.lambdadays.org/lambdadays2022 Predicting and Preventing Chaos with Formal Methods in TLA+ | Thomas Gebert - Lecturer at CUNY CityTech ABSTRACT You wouldn't build a house without a blueprint, but a lot of design in distributed computing still comes in the form of untestable whiteboard drawings and ad-hoc scripts, with the hope (and prayers) of that Kubernetes will save you. A good use of formal methods can be the difference between you sleeping through the night and being paged, and TLA+ is great for formal methods. • Follow us on social: Twitter: https://twitter.com/LambdaDays LinkedIn: https://www.linkedin.com/company/lambda-days/ • Looking for a unique learning experience? Attend the next Lambda Days conference near you! • SUBSCRIBE TO OUR CHANNEL https://www.youtube.com/channel/UC47eUBNO8KBH_V8AfowOWOw See what's coming up at: https://codesync.global

Watch
Teaching Functional Programmers Logic and Metatheory | Frederik Krogsdal Jacobsen | Lambda Days 2022

Teaching Functional Programmers Logic and Metatheory | Frederik Krogsdal Jacobsen | Making formal methods easier to understand ABSTRACT We present a novel approach for teaching logic and the metatheory of logic to students who have some experience with functional programming. We define concepts in logic as a series of functional programs in the language of the proof assistant Isabelle/HOL. This allows us to make notions which are often unclear in textbooks precise, to experiment with definitions by executing them, and to prove metatheoretical theorems in full detail. Our experience is that students grasp the meaning of programs quickly, and appreciate the precision available in the mechanized definitions and proofs. Authors: Frederik Krogsdal Jacobsen and Jørgen Villadsen - Technical University of Denmark, Copenhagen, Denmark • Follow us on social: Twitter: https://twitter.com/LambdaDays LinkedIn: https://www.linkedin.com/company/lambda-days/ • Looking for a unique learning experience? Attend the next Code Sync conference near you! See what’s coming up at: https://codesync.global • SUBSCRIBE TO OUR CHANNEL https://www.youtube.com/channel/UC47eUBNO8KBH_V8AfowOWOw

Watch
F#, SQL and lot of fun F# SQL micro orm | Jacek Hełka | Lambda Days 2022

This video was recorded at Lambda Days 2022 -https://www.lambdadays.org/lambdadays2022 osnap! Painless & massive regression test generation for OCaml | Valentin Chaboche - Software Engineering Intern at Nomadic Labs ABSTRACT The presentation is a story of building data access library for a functional language. Crucial design decisions and their reasons will be described, showing the process of growing it up over time from the minimal solution to a fairly feature-rich product. The presentation will bring up following topics: - place of data access mechanisms in overall application architecture and its impact on library design - representing queries as functions; using runtime code generation to implement query execution and result mapping - controlling side-effects and connection management with Async and Reader monad composition - making DSL for transforming results to application-level data structures - building dynamic query framework with templating and poor-man existential types. • Follow us on social: Twitter: https://twitter.com/LambdaDays LinkedIn: https://www.linkedin.com/company/lambda-days/ • Looking for a unique learning experience? Attend the next Lambda Days conference near you! • SUBSCRIBE TO OUR CHANNEL https://www.youtube.com/channel/UC47eUBNO8KBH_V8AfowOWOw See what's coming up at: https://codesync.global

Watch
An Enigma Machine in Elm | Ju Liu | Lambda Days 2022

This video was recorded at Lambda Days 2022 -https://www.lambdadays.org/lambdadays2022 An Enigma Machine in Elm | Ju Liu - Software Engineer ABSTRACT The Enigma machine was an encryption device that was used by German forces during WW2 to send secret messages. In this talk, we will explain exactly how the encryption process works and go through an implementation of it in Elm. We will demonstrate how to encrypt and decrypt a message. Then we will go over the weaknesses that made it exploitable by Alan Turing and the other fine folks in Bletchley Park. By the end of the talk, you'll be able to point out all the inaccuracies in "The Imitation Game". • Timecodes: 00:00 - 08:43 - Intro 08:44 - 14:32 - The Enigma Machine 14:33 - 24:52 - Journey of a Letter 24:53 - 30:23 - How to Encipher a Message 30:24 - 33:59 - Rotor: Encoding 33:40 - 38:23 - Enigma Machine Test 38:24 - 43:50 - Resources & QnA • Follow us on social: Twitter: https://twitter.com/LambdaDays LinkedIn: https://www.linkedin.com/company/lambda-days/ • Looking for a unique learning experience? Attend the next Lambda Days conference near you! • SUBSCRIBE TO OUR CHANNEL https://www.youtube.com/channel/UC47eUBNO8KBH_V8AfowOWOw See what's coming up at: https://codesync.global

Watch
Keynote: What every programmer should know about cognition | Felienne Hermans | Lambda Days 2022

What every programmer should know about cognition | Felienne Hermans | Programming is easy ABSTRACT Often when we talk about libraries, frameworks and modules, we talk about their technical aspects, like the language they are created in. However, programming languages and code bases can also be viewed through a cognitive lens. In this talk, Felienne Hermans, author of the Programmer's Brain, will discuss how your brain sees code, and what the impact of that is for reading code and for learning new languages. Examining code from a cognitive perspective, rather than a technical perspective, can help you gain a better perspective on how people interact with code and how you learn. • Follow us on social: Twitter: https://twitter.com/LambdaDays LinkedIn: https://www.linkedin.com/company/lambda-days • Looking for a unique learning experience? Attend the next Code Sync conference near you! See what’s coming up at: https://codesync.global • SUBSCRIBE TO OUR CHANNEL https://www.youtube.com/channel/UC47eUBNO8KBH_V8AfowOWOw

Watch
Orthotope APL inspired arrays for Haskell | Lennart Augustsson | Lambda Days 2022

This video was recorded at Lambda Days 2022 -https://www.lambdadays.org/lambdadays2022 Orthotope APL inspired arrays for Haskell | Lennart Augustsson - Principal Programmer at Epic Games ABSTRACT Orthotope is a Haskell library for multi-dimensional arrays, with an API is somewhat inspired by APL. The library provides a number of efficient structural (i.e., changing the shape of the array, but not its contents) operations on arrays. By using a clever (and ancient) representation of arrays, many structural operations can be done in constant time. The array comes in several variants depending on what underlying storage is used, and how strongly typed the API is. • Timecodes 00:00 - 10:49 - Intro for Orthotope + Array Type and Notation 10:50 - 25:19 - Examples 25:20 - 29:00 - Matrix Multiply 29:01 - 33:06 - Complexity 33:07 - 38:17 - Implementation 38:18 - 43:27 - Conclusion & QnA • Follow us on social: Twitter: https://twitter.com/LambdaDays LinkedIn: https://www.linkedin.com/company/lambda-days/ • Looking for a unique learning experience? Attend the next Lambda Days conference near you! • SUBSCRIBE TO OUR CHANNEL https://www.youtube.com/channel/UC47eUBNO8KBH_V8AfowOWOw See what's coming up at: https://codesync.global

Watch
A case study about (...) Languages' Energy Consumption | Aleksander Lisiecki | Lambda Days 2022

This video was recorded at Lambda Days 2022 -https://www.lambdadays.org/lambdadays2022 A case study about Comparative Programming Languages' Energy Consumption | Aleksander Lisiecki - Erlang and Elixir developer and trainer @Erlang Solutions ABSTRACT The IT industry is doing well, thanks to high revenues, but what if we could save some power writing more efficient programs and by that save costs and become eco friendly and more? In my talk, I would like to present the results of experiments where I implement the same program using different technologies and compare how are they doing regarding energy consumption and discuss its pros and conns to increase public awareness. • Follow us on social: Twitter: https://twitter.com/LambdaDays LinkedIn: https://www.linkedin.com/company/lambda-days/ • Looking for a unique learning experience? Attend the next Lambda Days conference near you! • SUBSCRIBE TO OUR CHANNEL https://www.youtube.com/channel/UC47eUBNO8KBH_V8AfowOWOw See what's coming up at: https://codesync.global

Watch
Using smoke & mirrors to compile a (...) to efficient GPU code | Troels Henriksen | Lambda Days 2022

This video was recorded at Lambda Days 2022 -https://www.lambdadays.org/lambdadays2022 Using smoke and mirrors to compile a functional programming language to efficient GPU code | Troels Henriksen - Assistant Professor at the University of Copenhagen ABSTRACT It's been often said that pure functional programming is a great fit for parallel programming, because it is free of side effects. So how come GPUs, perhaps the most parallel mainstream devices, are not dominated by functional programming languages? It turns out that GPUs and similar high-performance processors are heavily restricted in what they can efficiently do, and the way we normally compile functional languages tends to run face-first into most of these restrictions. How do you compile a functional language when even something as simple as allocating memory becomes a struggle? The trick is to carefully design a functional language that can be transformed into the kind of heavily restricted code expected by the hardware. The programmer may think they're using all the lovely higher-order functions we know and love, but really they're writing the kind of code you'd expect from a C compiler, full of loops, in-place updates, and up-front memory allocations! We have designed one such language, Futhark, which really feels like you're programming in a pretty decent subset of a language such as OCaml or Haskell, but with strategically placed limitations (and a very aggressive compiler) that lets it generate GPU code that is competitive with hand-written code. In my talk, I'll talk about some of the crucial transformations, how the compiler transforms the program, and how it lays out data in memory in ways that allow efficient access - without the programmer having to worry about anything but writing nice, parallel, purely functional code. • Follow us on social: Twitter: https://twitter.com/LambdaDays LinkedIn: https://www.linkedin.com/company/lambda-days/ • Looking for a unique learning experience? Attend the next Lambda Days conference near you! • SUBSCRIBE TO OUR CHANNEL https://www.youtube.com/channel/UC47eUBNO8KBH_V8AfowOWOw See what's coming up at: https://codesync.global

Watch
Nix: Configure and Prosper | Konrad Klawikowski | Lambda Days 2022

This video was recorded at Lambda Days 2022 -https://www.lambdadays.org/lambdadays2022 Nix: Configure and Prosper | Konrad Klawikowski ABSTRACT Nix is becoming more and more popular and its community is growing bigger and bigger. An introduction to Nix, its ecosystem, related tools, basic usage. Nix consists of a package manager and a language to describe packages for it. Its main features are: reproducible builds, cross-distro and -platform compatibility, binary caching and collection of software bigger than the AUR. Nix as the language is a rather simple lazy (almost) pure functional language with dynamic typing that was made to be specialized in building packages. NixOS is (almost) purely functional Linux distro, which utilizes Nix to configure the OS. The talk will cover basic know-how of Nix and what real-life problems can Nix solve. This will include: Nix's core concepts, syntax, building basic derivations, nix-shell, configuring NixOS with examples, introduction to ecosystem with an example of home-manager, usage on non-NixOS, nix-portable showcase, solving reproducibility issues, bonus: unstable feature - flakes. • Timecodes: 00:00 - 06:17 - Intro and Nix as a Language 06:18 - 10:06 - Nix as a Package Manager 10:07 - 14:12 - Nix as an OS 14:13 - 16:04 - Nix-shells 16:05 - 19:28 - Non-NixOS Nix 19:29 - 22:22 - Home-manager 22:23 - 23:41 - What is Nix 23:42 - 39:03 - Test and QnA • Follow us on social: Twitter: https://twitter.com/LambdaDays LinkedIn: https://www.linkedin.com/company/lambda-days/ • Looking for a unique learning experience? Attend the next Lambda Days conference near you! • SUBSCRIBE TO OUR CHANNEL https://www.youtube.com/channel/UC47eUBNO8KBH_V8AfowOWOw See what's coming up at: https://codesync.global

Watch
Profunctorial data schemes, subtyping and higher kinds | Oleg Nizhnikov | Lambda Days 2022

This video was recorded at Lambda Days 2022 -https://www.lambdadays.org/lambdadays2022 Profunctorial data schemes, subtyping and higher kinds | Oleg Nizhnikov - Scala Developer ABSTRACT Oleg will show a new form of data encoding in Scala, that combines power of tagless final and recursion schemes approaches, supports subtyping and HKD form of generalizations. He will explore scala 3 powers for derivation and practical usage with a little bit of reference to category theory. • Follow us on social: Twitter: https://twitter.com/LambdaDays LinkedIn: https://www.linkedin.com/company/lambda-days/ • Looking for a unique learning experience? Attend the next Lambda Days conference near you! • SUBSCRIBE TO OUR CHANNEL https://www.youtube.com/channel/UC47eUBNO8KBH_V8AfowOWOw See what's coming up at: https://codesync.global

Watch
Generalizing Payment as Types | Miao ZhiCheng | Lambda Days 2022

This video was recorded at Lambda Days 2022 -https://www.lambdadays.org/lambdadays2022 Generalizing Payment as Types | Miao ZhiCheng - CTO and co-founder at Superfluid ABSTRACT Payment as we know it is a discrete amount of money units transferred one to one, either as banknotes, coins or through a bank. In Superfluid, we have generalized it to continuous money units transferred not only one to one but also one to many. The system is live on various EVM blockchains. In the next iteration, these concepts of new types of money transfer are being defined and made type-safe using Haskell. Why Specification? It serves as a reference implementation which will help to port the protocol to different blockchain implementations. It allows faster prototyping of new ideas in abstraction without being limited by any specific blockchain. Why Haskell? First of all, haskell is a pure, strongly typed, concise, high level, memory-managed modular language. Because of that, it is well suited for the job of writing the specification for the protocol where abstraction, precision and succinctness matter. Having a higher level of abstractions gets Superfluid protocol closer to being able to formal concepts, where deeper relations between entities, patterns of interactions and composability of categories may emerge. • Follow us on social: Twitter: https://twitter.com/LambdaDays LinkedIn: https://www.linkedin.com/company/lambda-days/ • Looking for a unique learning experience? Attend the next Lambda Days conference near you! • SUBSCRIBE TO OUR CHANNEL https://www.youtube.com/channel/UC47eUBNO8KBH_V8AfowOWOw See what's coming up at: https://codesync.global

Watch
Uncomputable functions | Daan van Berkel | Lambda Days 2022

This video was recorded at Lambda Days 2022 -https://www.lambdadays.org/lambdadays2022 Uncomputable functions | Daan van Berkel - Software Craftsperson ABSTRACT Lambda calculus is the archetype for functional languages and places functions front and center. As a tool for thought it is very powerful. But it is not omnipotent! There are "functions" that are not computable. How can there be functions that you can not compute? And what does that even mean? In this talk we will take you on a whirlwind tour of uncomputable functions and explore the tantalizing frontier of current knowledge • Follow us on social: Twitter: https://twitter.com/LambdaDays LinkedIn: https://www.linkedin.com/company/lambda-days/ • Looking for a unique learning experience? Attend the next Lambda Days conference near you! • SUBSCRIBE TO OUR CHANNEL https://www.youtube.com/channel/UC47eUBNO8KBH_V8AfowOWOw See what's coming up at: https://codesync.global

Watch
Anosy: Approximate Knowledge Synthesis with Refinement Types | Niki Vazou | Lambda Days 2022

This video was recorded at Lambda Days 2022 -https://www.lambdadays.org/lambdadays2022 Anosy: Approximate Knowledge Synthesis with Refinement Types | Niki Vazou - Research Assistant Professor at IMDEA Software Institute in Madrid. ABSTRACT Non-interference is a popular way to enforce confidentiality of sensitive data. However, declassification of sensitive information is often needed in realistic applications but breaks non-interference. We present ANOSY, an approximate knowledge synthesizer for quantitative declassification policies. ANOSY uses refinement types to automatically construct machine checked over- and under-approximations of attacker knowledge for boolean queries on multi-integer secrets. It also provides an AnosyT monad transformer to track the attacker knowledge over multiple declassification queries, and checks for violations against the user-specified policies on information flow control applications. We implemented a prototype of ANOSY and showed that it is precise and permissive: up to 14 declassification queries were permitted before policy violation using the powersets of interval domain. • Follow us on social: Twitter: https://twitter.com/LambdaDays LinkedIn: https://www.linkedin.com/company/lambda-days/ • Looking for a unique learning experience? Attend the next Lambda Days conference near you! • SUBSCRIBE TO OUR CHANNEL https://www.youtube.com/channel/UC47eUBNO8KBH_V8AfowOWOw See what's coming up at: https://codesync.global

Watch
Debugging for math lover | Michał J. Gajda | Lambda Days 2022

This video was recorded at Lambda Days 2022 -https://www.lambdadays.org/lambdadays2022 Debugging for math lover | Michał J. Gajda - Software engineer ABSTRACT We make a toy model of debugging process and see how it is affected by different programming techniques, methodologies, and stylistic choices. This allows us to make a case for functional programming and mathematically founded programming in general. It also points at how different IDE mechanism may further help a functional programmer in debugging her programs. • Timecodes 00:00 - 02:39 - Intro and Types of errors 04:40 - 08:46 - Discrepancy Model 08:47 - 15:30 - Time to Fix and Fixing Functions 15:31 - 28:25 - Fixing a Library 28:26 - 34:22 - Ultimate Ways of Reducing Complexity 34:23 - 42:28 - QnA • Follow us on social: Twitter: https://twitter.com/LambdaDays LinkedIn: https://www.linkedin.com/company/lambda-days/ • Looking for a unique learning experience? Attend the next Lambda Days conference near you! • SUBSCRIBE TO OUR CHANNEL https://www.youtube.com/channel/UC47eUBNO8KBH_V8AfowOWOw See what's coming up at: https://codesync.global

Watch
Taming Floating Points in Scala & CakeML | Eva Darulova | Lambda Days 2022

This video was recorded at Lambda Days 2022 -https://www.lambdadays.org/lambdadays2022 Effectful | Paweł Szulc - Haskell Developer ABSTRACT Floating-point arithmetic enables efficient numerical computations, but is also notorious for being unintuitive due to its special values as well as rounding operations, the latter inevitably introducing errors at most arithmetic operations. One way of making sure that computed results are meaningful, i.e. accurate enough, even in the presence of such errors is to use a static analyzer that bounds the worst-case rounding errors. In this talk, I will give an overview of our recent research results and tools on formal verification of floating-point programs, focusing in particular on what is possible today when analyzing functional programs. • Follow us on social: Twitter: https://twitter.com/LambdaDays LinkedIn: https://www.linkedin.com/company/lambda-days/ • Looking for a unique learning experience? Attend the next Lambda Days conference near you! • SUBSCRIBE TO OUR CHANNEL https://www.youtube.com/channel/UC47eUBNO8KBH_V8AfowOWOw See what's coming up at: https://codesync.global

Watch
Thread per request vs Thread pool per operation | Krzysztof Płachno | Lambda Days 2022

This video was recorded at Lambda Days 2022 -https://www.lambdadays.org/lambdadays2022 Thread per request vs Thread pool per operation | Krzysztof Płachno - Scala Data Engineer at SwissBorg ABSTRACT When thinking about web applications designs there are two most common architectural paths that we can apply: the old good J2EE one of having one thread per request and newer, more FP-like of having separate thread pools for different operations in request fulfilment logic. Although, at functional programming conference, audience preference for one of those approaches is rather obvious, why not to have a closer look on both approaches and clearly get pros and cons of each? Talk meant to be a presentation of both architectural solutions, providing analysis their design motivations and practical consequences, pointing out advantages and drawbacks. All this to have nice comparison of them, that may help make valid decision on technology used of your next project. As concrete implementation examples Spring and Akka Http frameworks will be used. Disclaimer: The speaker codes Scala as part of my 9-5 job, still running my afterwork project in Java. Don't judge. At least before listening to the talk. • Timecodes 00:00 - 03:48 - Intro 03:49 - 05:52 - Web Application Characteristics 05:53 - 07:46 - Thread Mapping Models 07:47 - 08:49 - JVM 08:50 - 16:49 - Thread per Request 16:50 - 19:36 - Thread Pool per Operation 19:37 - 28:39 - Comparison 28:40 - 33:25 - Demo 33:26 - 44:43 - QnA • Follow us on social: Twitter: https://twitter.com/LambdaDays LinkedIn: https://www.linkedin.com/company/lambda-days/ • Looking for a unique learning experience? Attend the next Lambda Days conference near you! • SUBSCRIBE TO OUR CHANNEL https://www.youtube.com/channel/UC47eUBNO8KBH_V8AfowOWOw See what's coming up at: https://codesync.global

Watch
Algorithm design with the Selection Monad | Johannes Hartmann | Lambda Days 2022

Algorithm design with the Selection Monad | Johannes Hartmann | Research Student and Software Engineer ABSTRACT Ever wondered what the selection monad is and how it can be useful to programmers? In my talk, I want to provide a basic intuition on how the selection monad can be used and how we can utilise it to implement different kinds of algorithms. We will see that exhaustive search and greedy algorithms work quite well together with the selection monad. Paper authors: Johannes Hartmann and Jeremy Gibbons • Follow us on social: Twitter: https://twitter.com/LambdaDays LinkedIn: https://www.linkedin.com/company/lambda-days/ • Looking for a unique learning experience? Attend the next Code Sync conference near you! See what’s coming up at: https://codesync.global • SUBSCRIBE TO OUR CHANNEL https://www.youtube.com/channel/UC47eUBNO8KBH_V8AfowOWOw

Watch
Attack Of The Clones Multiplayer Online Game in Clojure | Mey Beisaron | Lambda Days 2022

Attack Of The Clones Multiplayer Online Game in Clojure | Mey Beisaron | Software Engineer, public speaker and mentor ABSTRACT Writing a Multiplayer Online Game in Clojure - WHY?? Not only because you can do it in under 100 lines of code, but because it is just pure FUN. I will go through each line of code and explain how you can do it yourself even if you’ve never written a single line of code in Clojure before! Whether you’re a real Clojurian at heart or just interested in hearing a talk about games development in Clojure from a sworn star wars fan - this talk is for you :) • Follow us on social: Twitter: https://twitter.com/LambdaDays LinkedIn: https://www.linkedin.com/company/lambda-days/ • Looking for a unique learning experience? Attend the next Code Sync conference near you! See what’s coming up at: https://codesync.global • SUBSCRIBE TO OUR CHANNEL https://www.youtube.com/channel/UC47eUBNO8KBH_V8AfowOWOw

Watch
Lambda Calculus Beep Boop | Einar Høst & Jonas Winje | Lambda Days 2022

This video was recorded at Lambda Days 2022 -https://www.lambdadays.org/lambdadays2022 Lambda Calculus Beep Boop | Einar Høst & Jonas Winje - computer at NRK & Developer at Computas ABSTRACT We know that we can represent all kinds of things in lambda calculus, including booleans, integers, and lists, but what about the representation of the lambda calculus terms themselves? In this talk we present beep boop, a representation for lambda calculus terms inspired by sound. It is a humane alternative to de Bruijn notation, since it is much easier to utter a sequence of symbols in beep boop than in traditional lambda-based representations. Pretty useful for humans! • Follow us on social: Twitter: https://twitter.com/LambdaDays LinkedIn: https://www.linkedin.com/company/lambda-days/ • Looking for a unique learning experience? Attend the next Lambda Days conference near you! • SUBSCRIBE TO OUR CHANNEL https://www.youtube.com/channel/UC47eUBNO8KBH_V8AfowOWOw See what's coming up at: https://codesync.global

Watch
osnap! Painless & massive regression test generation for OCaml | Valentin Chaboche | Lambda Days 22

This video was recorded at Lambda Days 2022 -https://www.lambdadays.org/lambdadays2022 osnap! Painless & massive regression test generation for OCaml | Valentin Chaboche - Software Engineering Intern at Nomadic Labs ABSTRACT Let’s be honest, OCaml developers distrust tests! They prefer more formal, but also more time-consuming methods, such as program proof. But, in reality, testing is a must in large-scale industrial software development. With snapshot testing, a function’s output is “snapshotted” and after modification such as refactoring, the test framework ensures that its output did not change. However, snapshot testing requires the developer to write scenarios by hand. We introduce osnap: a snapshot-testing library, with random scenario generation, execution, and behavioural change detection – inspired by property-based testing (“à la” QuickCheck). Using osnap, developers have a painless way to massively generate software regression tests. • Follow us on social: Twitter: https://twitter.com/LambdaDays LinkedIn: https://www.linkedin.com/company/lambda-days/ • Looking for a unique learning experience? Attend the next Lambda Days conference near you! • SUBSCRIBE TO OUR CHANNEL https://www.youtube.com/channel/UC47eUBNO8KBH_V8AfowOWOw See what's coming up at: https://codesync.global

Watch
Lambda Days 28-29 July 2022 teaser

Lambda Days is a place where academia meets industry, where research and practical application collide. Find out what is possible with functional programming - explore the latest in battle-tested Scala, Erlang and Haskell, experience the energy F# and Elixir bring to the table, connect with the innovators working with Elm, Luna and Ocaml, see what comes up next! We continue the collaboration with Trends in Functional Programming (TFP) and Trends in Functional Programming in Education (TFPiE), which take place virtually in March 2022. These speakers will also have the opportunity to present their works on the Lambda Days stage in July. To make sure everyone felt safe and comfortable, two Lambda Days tracks will be run HYBRID tracks, combining both an in-person and virtual experience. Read more about it here: https://www.lambdadays.org/lambdadays2022

Watch
Embedding Generic Monadic Transformer into Scala | Ruslan Shevchenko | Lambda Days 2022

This video was recorded at Lambda Days 2022 -https://www.lambdadays.org/lambdadays2022 Embedding Generic Monadic Transformer into Scala. (can we return concurrent programming into mainstream?) | Ruslan Shevchenko - Author of dotty-cps-async ABSTRACT Can we provide a development environment that gives the programmer an experience comparable to the state-of-the-art mainstream back-end programming? Dotty-cps-async intends to be an element of the possible answer. It provides the way to embed monadic expressions into base scala language using well-known async/await constructs, existing for nearly all mainstream programming languages. Although the main idea is not new, dotty-cps-async provides behind well-known interfaces a set of novel features, such as support of the generic monads, transformation of high-order function applications, generation of call-chain proxies, and automatic coloring. • Follow us on social: Twitter: https://twitter.com/LambdaDays LinkedIn: https://www.linkedin.com/company/lambda-days/ • Looking for a unique learning experience? Attend the next Lambda Days conference near you! • SUBSCRIBE TO OUR CHANNEL https://www.youtube.com/channel/UC47eUBNO8KBH_V8AfowOWOw See what's coming up at: https://codesync.global

Watch
Engaging Large Scale Functional (...) | Lukas Stevens, Kevin Kappelmann | Lambda Days 2022

Engaging Large-Scale Functional Programming Education in Physical and Virtual Space | Lukas Stevens, Kevin Kappelmann ABSTRACT Worldwide, computer science departments have experienced a dramatic increase in the number of student enrolments. Moreover, the ongoing COVID-19 pandemic requires institutions to radically replace the traditional way of on-site teaching, moving interaction from physical to virtual space. We report on our strategies and experience tackling these issues as part of a Haskell-based functional programming and verification course, accommodating over 2000 students in the course of two semesters. Among other things, we fostered engagement with weekly programming competitions and creative homework projects, workshops with industry partners, and collaborative pair-programming tutorials. To offer such an extensive programme to hundreds of students, we automated feedback for programming as well as inductive proof exercises. We explain and share our tools and exercises so that they can be reused by other educators. Authors: Kevin Kappelmann, Jonas Rädle and Lukas Stevens - Technical University of Munich, Munich, Germany • Follow us on social: Twitter: https://twitter.com/LambdaDays LinkedIn: https://www.linkedin.com/company/lambda-days/ • Looking for a unique learning experience? Attend the next Code Sync conference near you! See what’s coming up at: https://codesync.global • SUBSCRIBE TO OUR CHANNEL https://www.youtube.com/channel/UC47eUBNO8KBH_V8AfowOWOw

Watch
Towards Incremental Language Definition with Reusable Components | Damian Frolich | Lambda Days 2022

Towards Incremental Language Definition with Reusable Components | Damian Frolich | PhD candidate at the University of Amsterdam ABSTRACT This paper introduces a novel method for defining software languages incrementally as the composition of smaller languages, starting from reusable components for the specification of syntax and semantics. The method is enabled by the combined application of several advanced techniques implemented in functional languages: datatypes `a la carte for the fine-grained composition of (abstract) syntactic categories and composable micro-interpreters that implement the operational semantics of certain reusable components known as ‘funcons’. We demonstrate the method makes it possible to perform incremental language development with prototyping. The generality of the method is demonstrated through a variety of case studies. Paper authors: Damian Frolich and L. Thomas van Binsbergen • Follow us on social: Twitter: https://twitter.com/LambdaDays LinkedIn: https://www.linkedin.com/company/lambda-days/ • Looking for a unique learning experience? Attend the next Code Sync conference near you! See what’s coming up at: https://codesync.global • SUBSCRIBE TO OUR CHANNEL https://www.youtube.com/channel/UC47eUBNO8KBH_V8AfowOWOw

Watch
YATA collaborative documents & how to make them fast | Bartosz Sypytkowski | Lambda Days 2022

This video was recorded at Lambda Days 2022 -https://www.lambdadays.org/lambdadays2022 YATA collaborative documents & how to make them fast | Bartosz Sypytkowski - Software Developer ABSTRACT During this talk we'll cover core concepts behind Conflict-free Replicated Data Types (CRDTs) and how to use them to build truly distributed complex apps with offline-first capabilities. We'll also discuss about different performance metrics used to evaluate such systems and how to improve them. • Follow us on social: Twitter: https://twitter.com/LambdaDays LinkedIn: https://www.linkedin.com/company/lambda-days/ • Looking for a unique learning experience? Attend the next Lambda Days conference near you! • SUBSCRIBE TO OUR CHANNEL https://www.youtube.com/channel/UC47eUBNO8KBH_V8AfowOWOw See what's coming up at: https://codesync.global

Watch
Teaching Interaction using State Diagrams | Christopher Schankula | Lambda Days 2022

Teaching Interaction using State Diagrams | Christopher Schankula | Making my little corner of the world a better place, one student at a time. ABSTRACT To make computational thinking appealing to young learners, initial programming instruction looks very different now than a decade ago, with increasing use of graphics and robots both real and virtual. After learning the basics of drawing using code, children want to create interactive programs, and they need a model for this and large amounts of syntax can get in their way. State diagrams provide such a model, but in the Functional Programming community, there is a lot of skepticism about explicitly talking about state, perhaps because they associate it with side-effects. This presentation details using a state diagram tool to help students create interactive programs. We detail statistics from a small pilot using the tool to answer research questions about whether grade 4/5 students understand the use of state diagrams and how they correspond to the programs they generate. Authors: Padma Pasupathi, Christopher Schankula, Nicole DiVincenzo, Sarah Coker and Christopher Anand - McMaster University, Hamilton, Ontario, Canada • Follow us on social: Twitter: https://twitter.com/LambdaDays LinkedIn: https://www.linkedin.com/company/lambda-days/ • Looking for a unique learning experience? Attend the next Code Sync conference near you! See what’s coming up at: https://codesync.global • SUBSCRIBE TO OUR CHANNEL https://www.youtube.com/channel/UC47eUBNO8KBH_V8AfowOWOw

Watch
Towards a more perfect union type | Michał J. Gajda | Lambda Days 2022

Towards a more perfect union type | Michał J. Gajda | Scientist and developer ABSTRACT Typing dynamic languages has been long considered a challenge. The importance of the task has grown with the ubiquity of cloud application programming interfaces (APIs) utilizing JavaScript object notation (JSON), where one needs to infer the structure having only a limited number of sample documents available. Previous research has suggested it is possible to infer adequate type mappings from sample data. In this presentation, Michał presents a reseach where he and Mikhail Lazarev expands on these results. They propose a modular framework for defining type systems of programming languages as learning algorithms subject to a set of equations, and evaluate its performance on inference of Haskell data types from JSON API examples." Authors: Michał J. Gajda & Mikhail Lazarev • Follow us on social: Twitter: https://twitter.com/LambdaDays LinkedIn: https://www.linkedin.com/company/lambda-days/ • Looking for a unique learning experience? Attend the next Code Sync conference near you! See what’s coming up at: https://codesync.global • SUBSCRIBE TO OUR CHANNEL https://www.youtube.com/channel/UC47eUBNO8KBH_V8AfowOWOw

Watch
Lambda Days 2022 Highlights

This video was recorded at Lambda Days 2022 http://www.lambdadays.org/lambdadays2022 Get involved in Lambda Days' next conference http://www.lambdadays.org Lambda Days Website: www.lambdadays.org Twitter: www.twitter.com/LambdaDays Facebook: https://www.facebook.com/lambdadays LinkedIn: https://www.linkedin.com/company/11840018/

Watch
The work done by something else | Attila Egri-Nagy | Lambda Days 2022

This video was recorded at Lambda Days 2022 -https://www.lambdadays.org/lambdadays2022 The work done by something else | Attila Egri-Nagy - Software engineer ABSTRACT Declarative programming is about describing what we want instead of specifying how to obtain the desired result. This informal definition serves us well, we can confidently recall obvious examples of the declarative style from functional and logic programming. The historical development of programming languages itself can be characterised as moving closer to the declarative ideal. Mathematics is also an example of declarative knowledge... Err, wait a minute! Does this mean that programming is going to maths?!? Research in computer science education shows that it is beneficial to have a closer look at `obvious' concepts. Declarativeness is indeed a treasure trove of useful ideas. In this talk we will analyse everyday examples of declarative programming (functional collection processing, types, specs, point-free style and threading macros, destructuring, pattern matching) and more exotic ones (logic and relational programming, SAT-solvers). This will lead to another definition: declarativeness as the work done by something else, a blend of abstraction and automation. Philosophical abstraction romping, we will discuss heavy question like maths vs. programming; symbolic notation doing computation; and what is programming anyway? Back to everyday life at the keyboard, we will distill some advice on making conscious choices about declarativeness; asking the right questions when learning new languages/technologies, e.g., What does this automate for me? In short, the talk is a deep dive into the depth of the philosophy of programming with the purpose of acquiring knowledge of practical relevance. • Follow us on social: Twitter: https://twitter.com/LambdaDays LinkedIn: https://www.linkedin.com/company/lambda-days/ • Looking for a unique learning experience? Attend the next Lambda Days conference near you! • SUBSCRIBE TO OUR CHANNEL https://www.youtube.com/channel/UC47eUBNO8KBH_V8AfowOWOw See what's coming up at: https://codesync.global

Watch
Sig-adLib: A Compilable Embedded Language for (...) | Baltasar Trancón Widemann | Lambda Days 2022

Sig-adLib: A Compilable Embedded Language for Synchronous Data-Flow Programming on the Java Virtual Machine | Baltasar Trancón Widemann | Creator of domain-specific declarative languages ABSTRACT This talk presents Sig-adLib, an embedded domain-specific language for complex realtime data stream processing tasks on the JVM. It distinguishes a declarative data-flow and an imperative control-flow aspect. Sig-adLib programs can be interpreted, or compiled transparently to JVM bytecode and eventually jit-compiled. Both the interpreter and the compiler are completely modular and extensible. The compiler is fully embedded in the host program. Interpreted and compiled code both run indefinitely on fixed space. Benchmarks indicate a roughly 50-fold speedup by compilation, comparable with hand-coded, statically compiled implementations. Paper authors: Baltasar Trancón Widemann & Markus Lepper • Follow us on social: Twitter: https://twitter.com/LambdaDays LinkedIn: https://www.linkedin.com/company/lambda-days/ • Looking for a unique learning experience? Attend the next Code Sync conference near you! See what’s coming up at: https://codesync.global • SUBSCRIBE TO OUR CHANNEL https://www.youtube.com/channel/UC47eUBNO8KBH_V8AfowOWOw

Watch
Towards Smart E-Learning Mentor Dispatch | Christopher Schankula | Lambda Days 2022

Towards Smart E-Learning Mentor Dispatch | Christopher Schankula | Making my little corner of the world a better place, one student at a time ABSTRACT The McMaster Start Coding program has taught over 26,000 K-12 students programming using Elm over the last five years. Collectively, they have compiled nearly 4 million programs in our online learning platform. The COVID-19 pandemic has necessitated the switch to a fully virtual setup, which continues as schools have strict visitor limits. Virtual learning also necessitates upgrades to the online code compilation and mentoring software we use. In particular, we need to determine when a student is stuck so as to be able to make better use of mentor resources and proactively help students who are struggling. This presentation details data mining efforts to predict metrics such as the length of time that a student is likely to struggle if they are receiving an error in their program, in order to dispatch mentors and help the students who need the most attention. Authors: Chinmay Sheth, Vaitheeka Nallasamy, Kruthiga Karunakaran and Christopher K. Anand - McMaster University, Hamilton, Ontario, Canada • Follow us on social: Twitter: https://twitter.com/LambdaDays LinkedIn: https://www.linkedin.com/company/lambda-days/ • Looking for a unique learning experience? Attend the next Code Sync conference near you! See what’s coming up at: https://codesync.global • SUBSCRIBE TO OUR CHANNEL https://www.youtube.com/channel/UC47eUBNO8KBH_V8AfowOWOw

Watch
Less Arbitrary waiting time | Michał J. Gajda | Lambda Days 2022

Less Arbitrary waiting time | Michał J. Gajda | Scientist and developer ABSTRACT Property testing is the cheapest and most precise way of building up a test suite for your program. Especially if the datatypes enjoy nice mathematical laws. But it is also the easiest way to make it run for an unreasonably long time. We prove a connection between deeply recursive data structures, and epidemic growth rate, and show how to fix the problem, and make Arbitrary instances run in linear time with respect to the assumed test size. We also provide a fully generic implementation, so the error-prone coding process is removed. • Follow us on social: Twitter: https://twitter.com/LambdaDays LinkedIn: https://www.linkedin.com/company/lambda-days/ • Looking for a unique learning experience? Attend the next Code Sync conference near you! See what’s coming up at: https://codesync.global • SUBSCRIBE TO OUR CHANNEL https://www.youtube.com/channel/UC47eUBNO8KBH_V8AfowOWOw

Watch