Functional programmers: “why do object-oriented programmers have to invent so many different ways to pass arguments to functions”

Also functional programmers:

newtype Reader r a = Reader (r -> a)

Elk has L is an anagram of and I think that's beautiful

Some C person entering an Underhanded Coding Contest: *Does some weird stuff with UTF-8 code lengths and uninitialized memory*
Me, a wizard, entering said contest: Ok, let's...
Jury: OMG he's using Haskell. In _production_. Clearly the winner. I mean no normal person is going to be able to read the code.
Me: But I haven't even explained yet why ListT isn't a monad

There is this new GHC extension, GHC2021. It's awesome, it activates the 2021 most popular GHC extensions at once, so you don't need to do that manually

I find it ironic that when you're being lazy in you typically end up using strict text

1990's folk: The GC, our greatest strength (apart from monads)

2020's haskell folk: The GC, our greatest weakness (apart from records)

Funniest Haskell library name competition. Please enter your candidates as replies to this toot. Hackage uploaded packages only.

@turion haskell fans be like: haskell good for parallel because immutable
haskell rts be like: haha mutator and gc both mutating the mutable heap go brrr

So you can't have without hell. It seems you can have Haskell without GC, and that sounds like an improvement already

Show thread

Ask hell is an anagram of and I think that's beautiful

You know what the most dangerous monad in is? It's the free monad. Because it has no laws. :beebo: :ats:

More . Simon Marlowe can run code in parallel that requires Monad m and not just Applicative m

The fate of every major invention or discovery in the ecosystem is either

1.) To stay confined to the Haskell (& related languages) world, and never gain traction in other languages.

or

2.) To be (mis)translated into other languages, with the true origin forgotten. I'm looking at you QuickCheck, and your illegitimate children called propcheck, proptest, quicktest, or any such combination of syllables

projects are like Theseus ship, you gotta replace replace every line of code eventually with the next react version. projects are like antique Greek sculptures where everything is perfect in an immortal way. Until Functor-Applicative-Monad, then you gotta replace all the nasty (Functor m, Monad m) by well-mannered Monad m, the same way they lobbed all the pricks off the statues

When a JavaScript library doesn't see a commit in a year, it's considered dead. When a Haskell library doesn't see a commit in a year, it's considered farsighted design.

trivia. Functor translated to German is "Funktor". Additionally, Funktor means "wireless remote controlled gate", and I think that's beautiful

After cleaning up a barn where three horses do IO on a lot of hay, I can finally fathom how the garbage collector must feel when I feed it a program

Btw although we have machine overlords, on our daily lives as puny humans they have basically no _side effects_. *badumtss*

Show thread
Show older
types.pl

A Mastodon instance for programming language theorists and mathematicians. Or just anyone who wants to hang out.