jaror avatar

jaror

@jaror@kbin.social

All the side effects were never mentioned to me
I am innocent of uncontrolled abuse

meejah, to haskell
@meejah@mastodon.social avatar

Hey is there a way to work with adwaita + gtk4? (Preferably expressed as an example :)

jaror,
jaror avatar

@meejah haskell-gi has bindings to gtk4 and adwaita. They are automatically generated so the API is mostly the same as in C, but there are some differences. Do read the readme on github.

[Well-Typed] The Haskell Unfolder Episode 18: computing constraints (well-typed.com)

Sometimes, for example when working with type-level lists, you have to compute with constraints. For example, you might want to say that a constraint holds for all types in a type-level list. In this episode, we will explore this special case of type-level programming in Haskell. We will also revisit type class aliases and take...

Haskell Interlude 41: Mike Angermann (haskell.foundation)

Today, Matthías and Joachim are interviewing Moritz Angermann. Moritz knew he wanted to use Haskell before he knew Haskell, fixed cross-compilation as his first GHC contribution. We'll talk more about cross-compilation to Windows and mobile platforms, why Template Haskell is the cause of most headaches, why you should be...

jaror,
jaror avatar

The discussion about incentives for stability was interesting. It reminded me of the maintainership standards proposal. I think it would be very useful to have Hackage show information like how quickly a package fixes version bounds when new versions of their dependencies are released.

Profpatsch, to haskell
@Profpatsch@mastodon.xyz avatar

on, the most useless function in base. There’s really never a situation where inlining it doesn’t make the code easier to understand.

jaror,
jaror avatar

@Profpatsch compare `on` length to me seems much nicer than \x y -> compare (length x) (length y)

jaror,
jaror avatar

Would you also say that syntactic sugar like [1,2,3] doesn't carry its complexity budget? Should we always use 1:2:3:[] instead?

I don't necessarily disagree, but you'd get quite a different language.

jaror,
jaror avatar

@Profpatsch Are you implying syntactic sugar doesn't count towards the complexity budget? I'm just trying to test my understanding of the complexity budget by applying it to other things in the language.

jaror, to haskell
jaror avatar

Some random thoughts after discussions at the FP Dag yesterday:

We need more learning resources based on pracitcal projects like https://learn-haskell.blog/, and the practical project should not be compiler related. Perhaps the Haskell School of Expression is also a good example of this but it is a bit outdated.

One objection to teaching Haskell through more practical Haskell projects is that it wouldn't show off the benefits if all you're working with I/O almost all of the time. I asked Jaap van der Woude who was sitting next to me - and is a fervent proponent of program design by calculation (e.g. as described in this book) - the question: "Could you calculate a game from its specification?" His immediate response was no, but later he did explain that he used to give students an assignment to specify the game Snake, which was already often too much for his students.

I'll have to try doing that exercise myself sometime. I still think that if we ever want to get to a future where we can write correct and reusable software, then we'll have to find a way to make it easier to formally specify our programs.

DiazCarrete, to vim
@DiazCarrete@hachyderm.io avatar

9.1 released, including support for classes in Vimscript! Now I can finally adopt it as my my primary programming language. (Just kidding, of course... It already was.)
🔗 https://www.vim.org/vim-9.1-released.php
🔗 https://vimhelp.org/vim9class.txt.html#vim9-class

jaror,
jaror avatar

@DiazCarrete I find it kind of sad that the advice is basically to always write purpose-built classes and never try to fit them into a reusable framework.

Surely someone else must have already thought about rectangles and squares. Why can't I just reuse an existing shapes package which has everything I need (and the optimal class model)?

jaror,
jaror avatar

@DiazCarrete with type classes in Haskell my personal ideology is to avoid them unless you're very sure that they are really a good model of your domain and they have specific laws. But indeed, many classes and instances - in base even - don't satisfy that.

pmidden, to haskell
@pmidden@fosstodon.org avatar

Not sure why trailing commas aren't more common in programming languages and formats. Does it make the parser simpler? Can't imagine. (current example: )

jaror,
jaror avatar

@pmidden Haskell has tuple sections which throw a wrench into consistency of trailing commas. E.g. ('a',) Is a function that takes any value x and returns the tuple ('a', x). So trailing commas cannot be ignored in tuples. For more complications see the ExtraCommas proposal discussion.

Haskell in Production: Chordify (serokell.io)

In this edition of our “Haskell in Production” series we interview Jeroen Bransen from Chordify, an online platform, which turns any music or song into chords. Jeroen has been working at Chordify since 2016. We discussed how Chordify ensures the correctness of Haskell code and scalability of its codebase, which libraries...

Haskell Interlude 40: Mike Sperber (haskell.foundation)

In this episode, Andres and Matti talk to Mike Sperber, CEO of Active Group in Germany. They discuss how to successfully develop an application based on deep learning in Haskell, contrast learning by example with the German bureaucratic approach, and highlight the virtues of having fewer changes in the language.

[Well-Typed] The Haskell Unfolder Episode 17: circular programs (www.youtube.com)

A circular program is a program that depends on its own result. It may be surprising that this works at all, but laziness makes it possible if output becomes available sooner than it is required. In this final episode of 2023, which will be longer than usual (probably 45-60 minutes), we will take a look at several examples of...

jaror,
jaror avatar

This was a fun episode. I was introduced to breadth first labeling and attribute grammars by Doaitse Swierstra at the Applied Functional Programming summer school in Utrecht. He was an inspiring figure.

The biggest disadvantage of circular programs is that it is very easy to get into infinite loops when you make mistakes. I wish there was an easy way to guarantee statically that circular programs are terminating (perhaps using types).

There is also a recent paper about implementing breadth-first traversals without relying on laziness: https://www.cs.ox.ac.uk/people/jeremy.gibbons/publications/traversals.pdf. Unfortunately, that does not contain any benchmarks.

Well-Typed Blog: Haskell Symposium 2023 (well-typed.com)

The Haskell Symposium is a two-day workshop co-located with the International Conference on Functional Programming (ICFP). In a previous blog post we discussed the Haskell Implementors’ Workshop (HIW), which is another Haskell-workshop co-located with ICFP, but unlike HIW, the Haskell Symposium is a scientific workshop with...

jaror,
jaror avatar

Maybe the symposium should start catering more to industrial users, now that Haskell itself also seems to be moving more in that direction (e.g. more backwards compatibility). The symposium already allows experience reports and demos.

jaror,
jaror avatar

@kosmikus @mangoiv I'm not really the right person to ask, having spent exactly zero time in industry. But I can imagine most industrial users have little interest in the main ICFP program and the other co-hosted workshops. So hosting the event separately at a smaller venue for just two days could make it possible to substantially lower the fees (and individual accommodation costs) which naturally makes the event more accessible. And I expect that the fees are generally a bigger problem outside of academia, so it cater more to industrial users and hobbyists.

  • All
  • Subscribed
  • Moderated
  • Favorites
  • megavids
  • InstantRegret
  • magazineikmin
  • thenastyranch
  • Youngstown
  • mdbf
  • everett
  • slotface
  • khanakhh
  • ethstaker
  • rosin
  • kavyap
  • GTA5RPClips
  • tacticalgear
  • JUstTest
  • DreamBathrooms
  • ngwrru68w68
  • Durango
  • normalnudes
  • cubers
  • modclub
  • cisconetworking
  • tester
  • osvaldo12
  • provamag3
  • anitta
  • Leos
  • lostlight
  • All magazines