- Видео 34
- Просмотров 104 877
Berlin Functional Programming Group
Германия
Добавлен 16 апр 2020
This is the official channel for recordings of the Berlin Functional Programming Group's virtual meetings. We are a diverse and friendly group of professional and hobbyist practitioners of functional programming, with interests in many idioms and at all skill levels.
Join us on Meetup: www.meetup.com/Berlin-Functional-Programming-Group/
Follow us on Twitter: BerlinFPGroup
Buy a T-shirt: teespring.com/berlin-fp-group
Support us on Patreon: www.patreon.com/bfpg
Join us on Meetup: www.meetup.com/Berlin-Functional-Programming-Group/
Follow us on Twitter: BerlinFPGroup
Buy a T-shirt: teespring.com/berlin-fp-group
Support us on Patreon: www.patreon.com/bfpg
John De Goes is Programming Without Type Classes
Type classes have become a cornerstone of statically-typed functional programming, powering abstractions like monoid and monad. Yet, type classes often have generalized names, which don’t reflect their purpose in specific domains; and they incur higher learning costs, especially when emulated in languages without them.
In this presentation, John De Goes discusses the pros and cons of using type classes, and presents a systematic method for building powerful functional components that do not require type classes. Attendees will learn how to preserve the benefits of principled, algebraic functional programming, without forcing type classes on coworkers or users.
A mathematician by training bu...
In this presentation, John De Goes discusses the pros and cons of using type classes, and presents a systematic method for building powerful functional components that do not require type classes. Attendees will learn how to preserve the benefits of principled, algebraic functional programming, without forcing type classes on coworkers or users.
A mathematician by training bu...
Просмотров: 6 570
Видео
Scala on Android
Просмотров 8963 года назад
With Maciek Gorywoda From Maciej: "For almost four years now, I have worked professionally on the Android client of an end-to-end encrypted messenger, in Scala. In Android, we deal a lot with events coming from many sources: the user, the backend, the Android OS itself… The code we write has to be very reactive-and it should also be concise and able to process all those events concurrently to s...
"Why Nix Shorts" starring Justin Woo
Просмотров 6643 года назад
A talk about why Justin made his "Nix Shorts" series of small notes about how to get started with Nix, and what he thinks about how "getting started" guides are made and what could make them more helpful. Justin is an Asian-American guy who is mostly known not for anything he has done with JS, PureScript, Nix, or Haskell, but really just because of some terrible memes on Twitter he doesn't make...
Deconstructing Lambdas-An Awkward Guide to Programming Without Functions
Просмотров 5 тыс.3 года назад
With Chris Penner! We'll explore how profunctors are a foundational computing tool by expressing many programming patterns using the profunctor class hierarchy and profunctor transformations (a.k.a. hypermorphisms, a generalization over profunctor optics). Chris Penner is a Haskell hobbyist and self-proclaimed incarnation of "Cunningham's Law". He enjoys writing and often blogs about Lenses, Re...
Safer Rust: Program Verification with Creusot
Просмотров 1,5 тыс.3 года назад
With Xavier Denis! Rust has shown how an advanced and strict type system can drastically reduce the complexity of systems programming: the borrow checker serves as both a programmer's worst foe and most loyal ally, preventing bugs along the way. But the type system of Rust only gets us so far-it does nothing to help us prove the functional correctness of our code. Xavier will show you how to ch...
A Horrified Haskeller's Descent into Python Gradual Static Typing
Просмотров 1,4 тыс.3 года назад
An FP Forum talk with Ben Clifford! Ben was a Haskell programmer, but changing projects he switched to a pre-existing, dynamically-typed Python codebase. Of course, he wanted some type checking in there, so he switched on some of Python's optional static typing features and had an adventure. Assuming you have some knowledge of more traditional functional type systems (e.g. Haskell), he'll give ...
Ways of Dealing with Partial Functions in Haskell
Просмотров 6973 года назад
An FP Forum event with Philipp Zander! There is a "hierarchy of fragility" of ways of dealing with partial functions. One of the less fragile techniques is encoding preconditions using newtypes and smart constructors. This seems to break down when it comes to partial functions taking multiple arguments. Matt Noonan describes how to make this technique work even with functions taking multiple ar...
Daniel Bachler Wants You to Get Stuff Done with F#
Просмотров 2 тыс.3 года назад
F# is a statically-typed functional programming language that is very pragmatic in its conception and very useful for solving everyday problems. It has the usual, nice ML family language features like algebraic data types, curried functions with partial application, and immutable records and collections. But while using fold/reduce is often great, some algorithms are just a lot easier to write ...
Hillel Wayne is Designing Distributed Systems with TLA+
Просмотров 2,7 тыс.3 года назад
Distributed systems are hard. Even a few interacting agents can lead to tens of thousands or even millions of unique system states. At that scale, it’s impossible to test for, or even reason about, every possible edge case. We need better tools not just for building systems, but for understanding them. To truly understand distributed systems, we need to turn to software modeling, or “formal met...
ATS: Why Linear Types are the Future of Systems Programming
Просмотров 10 тыс.3 года назад
With Aditya "Deech" Siram! This talk will explore why ATS, a linearly typed ML for systems programming, should be the inspiration for the next generation of systems programming languages. It will cover: - Using linear types for completely type safe C level control over memory manipulation and allocation. - Interleaving theorem proving and dependent types to emulate Rust-like mutability guarante...
Alexander Granin Uses Free Monads in Real Production
Просмотров 2,5 тыс.3 года назад
Free monads have a very difficult path in the Haskell community. For a long time, it was considered that Free monads aren't that good: lack of performance, inability to work with exceptions, too complex theory behind them. But it turned out that it's all myths. Free monads, when used right, can be fast, simple, and provide additional power like exceptional exception handling. In this talk, Alex...
Garnishing Parsec With Parsley: A Staged Selective Parser Combinator Library
Просмотров 7283 года назад
With Jamie Willis! Parser combinator libraries are a popular approach to writing parsers in the functional world. In particular, monadic parser combinators take centre stage. But when performance of these parser combinators become a concern, then monads prevent us from analysing and optimising our parsers effectively. Selective functors give a ray of hope to the combinator world by generating a...
Leverage the Power of Logic Programming With Souffle-haskell
Просмотров 1,8 тыс.4 года назад
With Luc Tielen! Souffle-haskell is a Haskell library that provides bindings for the Souffle language. Souffle is a Datalog variant that allows rapid prototyping of complex analyses in a high-level logic language. With souffle-haskell, it is now possible to combine the strengths of both Haskell and Datalog in order to solve complex problems easily. In this talk, Luc will start with a short intr...
Next-gen Haskell Compilation Techniques with Csaba Hruska
Просмотров 3,8 тыс.4 года назад
In the Haskell community, it is relatively well known how GHC compiles Haskell source code to machine code. The architecture of GHC is the result of 30 years of gradual development effort. But computing technology has changed a lot during this time. New ideas and compilation techniques have appeared on the scene that used to be infeasible either due to the lack of theoretical foundations or for...
Gabriel Gonzalez on Dhall: A Programmable Configuration Language
Просмотров 2,4 тыс.4 года назад
Dhall is a domain-specific language for reducing repetition in large configuration languages. Dhall is commonly adopted by people who place a premium on language security features (such as strong normalization, integrity checks, and restricted side effects), but Dhall can also be used as an embeddable and customizable programming language for small applications. The talk will begin by showing h...
Refactoring Reflected with Simon Thompson
Просмотров 5494 года назад
Refactoring Reflected with Simon Thompson
Richard Eisenberg on Simplifying Constraint Solving in GHC
Просмотров 1,3 тыс.4 года назад
Richard Eisenberg on Simplifying Constraint Solving in GHC
An Adventure in Symbolic Execution with Gergő Érdi
Просмотров 5314 года назад
An Adventure in Symbolic Execution with Gergő Érdi
Specifying and Testing Web Applications with Oskar Wickström's Quickstrom
Просмотров 6804 года назад
Specifying and Testing Web Applications with Oskar Wickström's Quickstrom
FP Forum Online: Flavio Corpa, Torsten Scholak, and Richard Feldman
Просмотров 9 тыс.4 года назад
FP Forum Online: Flavio Corpa, Torsten Scholak, and Richard Feldman
Edwin Brady Tells Us What's New in Idris 2
Просмотров 6 тыс.4 года назад
Edwin Brady Tells Us What's New in Idris 2
Enumerate Your Data, or Enum Instances on Steroids
Просмотров 6814 года назад
Enumerate Your Data, or Enum Instances on Steroids
How To Be an Effective Liar in Haskell
Просмотров 2 тыс.4 года назад
How To Be an Effective Liar in Haskell
Improving Developer Experience with Phoenix LiveDashboard starring Michael Crumm
Просмотров 5334 года назад
Improving Developer Experience with Phoenix LiveDashboard starring Michael Crumm
Fight Complexity with Functional Programming! With Gopal Akshintala!
Просмотров 5104 года назад
Fight Complexity with Functional Programming! With Gopal Akshintala!
Haskell for a New Decade with Stephen Diehl
Просмотров 9 тыс.4 года назад
Haskell for a New Decade with Stephen Diehl
Joe Kachmar Presents: Low-Level Programming in Haskell with Levity Polymorphism
Просмотров 1,7 тыс.4 года назад
Joe Kachmar Presents: Low-Level Programming in Haskell with Levity Polymorphism
A Universal Hostless Substrate: Full Stack Web Apps Without a Backend, and More!
Просмотров 7364 года назад
A Universal Hostless Substrate: Full Stack Web Apps Without a Backend, and More!
A Totally Non-Terrifying, Practical Introduction to Type-Level Programming
Просмотров 6 тыс.4 года назад
A Totally Non-Terrifying, Practical Introduction to Type-Level Programming
Alejandro Serrano Mena on Why Functors and Applicatives Compose but Monads Don't
Просмотров 4,5 тыс.4 года назад
Alejandro Serrano Mena on Why Functors and Applicatives Compose but Monads Don't