Planet Haskell
Haskell at Work: Purely Functional GTK , Part 2: TodoMVC  00h00 19 janvier
Purely Functional GTK , Part 2: TodoMVC In the last episode we built a Hello, World application using gi-gtk-declarative. It’s now time to convert it into a to-do list application, in the style of TodoMVC. To convert the Hello, World application to a to-do list application, we...
Oskar Wickström: Property-Based Testing in a Screencast Editor, Case Study 2: Video Scene Classification  22h00 16 avril
In the last case study on property-based testing (PBT) in Komposition we looked at timeline flattening. This post covers the video classifier, how it was tested before, and the bugs I found when I wrote property tests for it. If you haven’t read the introduction or the first case study yet, I...
Shayne Fletcher: Maybe  21h07 22 juin
There are different approaches to the issue of not having a value to return. One idiom to deal with this in C is the use of boost::optional<T> or std::pair<bool, T>. class boost::optional<T> Discriminated-union wrapper for values.Maybe is a polymorphic sum type with two...
Lysxia’s blog: Testing higher-order properties with QuickCheck  00h00 24 février
This is a fairly technical article. This article will most likely not have any significance for you if you haven’t heard of the Beck-Chevalley condition before. Introduction When one talks about indexed (co)products in an indexed category, it is often described as follows: Let mathcal C be an...
Derek Elkins: Beck-Chevalley  07h59 23 février
This semester I’m teaching a Discrete Mathematics course. Recently, I assigned them a homework problem from the textbook that asked them to prove that the binary operator on the real numbers is associative, that is, for all real numbers , , and , . You might like to pause for a minute to think...
Brent Yorgey: What would Dijkstra do? Proving the associativity of min  04h07 23 février
Posted on February 20, 2020 Part 9 of a 9-part series on Breadth-First Traversals Tags: Haskell This post will be quite light on details: I’m trying to gather up all of the material in this series to be a chapter in my Master’s thesis, so I’m going to leave...
Donnacha Oisà n Kidney: Another Breadth-First Traversal  00h00 20 février
Arnaud SpiwackHaskell has exceptions. Therefore, any design for linear types in Haskell will have to deal with exceptions. It might seem impossible to square with this requirement: how can linear types, which require that values be used exactly once, accommodate exceptions, which interrupt my...
Tweag I O: On linear types and exceptions  00h00 19 février
In the last couple weeks, we’ve started getting our feet wet with the Nix package manager. Last time we used cabal2nix to convert a purely Cabal project into a Nix project. This demonstrated how we could get our Haskell dependencies from the Nix store if we wanted. But one of the virtues of Nix is...
Monday Morning Haskell: Using Nix to Fetch C Libraries   15h30 17 février
Over on the other blog I said Midichlorians predated The Phantom Menace. No, the bacterium was named years after the movie was released. Thanks to Eyal Joseph Minsky-Fenick and Shreevatsa R. for (almost simultaneously) pointing out this mistake.
Mark Jason Dominus: Midichlorians  21h28 16 février
Modular arithmetic comes up a lot in computer science, and so it’s no surprise that it is featured, either explicitly or implicitly, in many competitive programming problems. As a brief aside, to be good at competitive programming it’s not enough to have a library of code at your disposal (though...
Brent Yorgey: Competitive Programming in Haskell: modular arithmetic, part 1  21h06 15 février
Posted on February 15, 2020 Tags: Haskell Just a short one again today There’s an excellent talk by Kenneth Foner at Compose from 2016 which goes through a paper by Danvy and Goldberg (2005) called There and Back Again (or TABA). You should watch the talk and read...
Donnacha Oisà n Kidney: Typing TABA  00h00 15 février
Richard Eisenberg and Matthias MeschedeWe are thrilled to announce the first part of a new program at Tweag: the Tweag Open Source Fellowship. Open Source Fellows get financial support and mentorship from Tweag I O to bring their own ideas into practice for the benefit of the open source community....
Tweag I O: Tweag Fellowships: Funding for Open Source Contributors  00h00 14 février
Here is Gerhard Gentzen’s original statement of the rules of Natural Deduction ( ein Kalkül für natürliche’, intuitionistische Herleitungen ):
Mark Jason Dominus: Gentzen’s rules for natural deduction  14h03 13 février
I’ve recently been watching Guy Michelmore’s youtube videos on composing music. That looks pretty easy I thought to myself, which led to accidentally buying a Native Instruments M32 and attempting to compose music for myself. As it happens, writing music is much harder than I gave it credit for....
Sandy Maguire: A Working Linux DAW  00h30 13 février
Fixed point decimal numbers are used for representing all kinds of data: percentages, temperatures, distances, mass, and many others. I would like to share an approach for safely and efficiently representing currency data in Haskell with safe-decimal. Problems we want to solve Floating point I...