Paul Louth
banner
paullouth.bsky.social
Paul Louth
@paullouth.bsky.social
Founder of https://meddbase.com
Author of language-ext — FP framework for C#: https://github.com/louthy/language-ext
Notes from a Small Functional Island (blog): https://paullouth.com
Producer of house & techno

https://linktr.ee/louthy
December 7, 2025 at 11:40 PM
Hey Mike, thanks 🙏

The modular is pretty settled right now, but I did pick up a Moog Model D and a Novation AFX Station (Bass station) — mostly so I could say: “That’s no Moog… it’s a Bass Station!” — thinking I’m funny
July 31, 2025 at 9:06 AM
#nowtv better be giving out some compensation due to me missing large parts of the cricket today 😡
July 24, 2025 at 3:32 PM
It's doing it again. The check-marks are there. The module is listed as Enabled in the Modules tab.
July 7, 2025 at 3:35 PM
Guess which of the highlighted breakpoints @jetbrains-rider.bsky.social hits first in Debug configuration? That's right, none of them. It just point-blank refuses to stop at breakpoints. Making the whole platform next to useless. Thanks @jetbrains.com for continually making Rider worse and worse 😡
July 5, 2025 at 4:25 PM
Oh shit...
May 9, 2025 at 12:46 PM
Always good to warn your future self! Here's one of mine, not quite as extreme but warning my future self to not beat himself up over what he finds :D
February 6, 2025 at 10:23 AM
#davidlynch obsessive
January 17, 2025 at 9:54 AM
January 10, 2025 at 8:22 PM
Not entirely surprising 🤣

blueskywordcloud.com
December 13, 2024 at 10:22 AM
Finally, you can use named parameters, which then looks like pattern-matching.
November 27, 2024 at 1:13 PM
NOTE: This does not give you exhaustiveness checks when pattern-matching. If you want to make sure that every case is definitely handled then you'll need to fall back to abstract/virtual interfaces (the OO way), or add a `Match` method that does it for you:
November 27, 2024 at 1:09 PM
DUs are being added by the C#-lang team, but it's a ways off. So, in the meantime you can simulate them with records.

Note the private constructor, that stops anybody else from inheriting from `Maybe<A>`, and the `sealed` records stop anybody inheriting from the case-types.
November 27, 2024 at 1:06 PM
Language-ext turns 10 years old today. My mission to bring the benefits of pure functional programming to C# has been quite a journey.

* Over a million lines of code written
* Nu-get package downloaded 19 million times
* 6000 downloads per day
November 16, 2024 at 10:13 AM
I sometimes despair at the #Rider debugger. I wonder under what 'context' the name 'initial' would be valid, if not when you've hit a breakpoint where the variable is in-scope 🤦
November 12, 2024 at 7:17 PM
This is what my parse function looks like, the `BlockParser.parse` function is the Parsec stage:
November 12, 2024 at 11:18 AM