#languageext
I'm doing a personal #dotnet project with #Aspire, #Orleans, #Blazor, #SignalR, #FastEndpoints, #LanguageExt, #CosmosDB, #AzureStorage and #Keycloak (Identity)
It's all stuff I know very little about (except Azure Storage and CosmosDB).
January 3, 2025 at 5:35 PM
Part 3 of my 'Higher Kinds in C#' series is now available - this episode, foldables! #csharp #dotnet #fp #languageext #foldable

paullouth.com/higher-kinds...
Higher Kinds in C# with language-ext [Part 3 - foldables]
Foldables abstract the idea of aggregation away from simple lists (like Aggregate in LINQ) to many other types.
paullouth.com
August 18, 2024 at 6:14 PM
Part 12 of my Higher Kinds in C# series is up now. Following on from ReaderT and StateT, we finish the transformer-triplet with WriterT #csharp #dotnet #languageext #monad #transformer #fp

paullouth.com/higher-kinds...
Higher Kinds in C# with language-ext [Part 12- WriterT monad transformer]
The WriterT monad transformer allows for aggregating output using pure expressions.
paullouth.com
October 20, 2024 at 8:54 PM
Part 10 of my Higher Kinds in C# series is now available. Continuing the monad transformers story with ReaderT. I'm going to spend a little longer on these transformers as it's relatively new idea for c#-land. #csharp #dotnet #fp #languageext #monad #readert

paullouth.com/higher-kinds...
Higher Kinds in C# with language-ext [Part 10- ReaderT monad transformer]
A look at the ReaderT monad transformer and the general Readable trait that allows generalised access to types with embedded environments.
paullouth.com
August 18, 2024 at 6:19 PM
Thought after maintaning .NET projects at work: classic approaches to validation in C# are annoyingly cumbersome if you want to do it right.

Here's a rather basic repo I put together to demo an approach that uses #LanguageExt Validation type capabilities #csharp
github.com/binarybang/f...
GitHub - binarybang/functional-validation-demo
Contribute to binarybang/functional-validation-demo development by creating an account on GitHub.
github.com
November 7, 2025 at 9:27 PM
The main problem is that there's no one de-facto standard or built-in support. There're multiple implementations (see www.reddit.com/r/dotnet/com...) which feel clunky due to missing syntax sugar for binding (LanguageExt utilizes LINQ for that but with also comes with a significant cognitive load).
Looking for library: your favorite Result<T>-like type
www.reddit.com
November 28, 2024 at 9:07 PM
Part 4 of my 'Higher Kinds in C#' series is now available - this episode, applicatives! #csharp #dotnet #fp #languageext #applicative

paullouth.com/higher-kinds...
Higher Kinds in C# with language-ext [Part 4 - applicatives]
Applicatives are not often talked about outside of Haskell-land, but are extremely powerful compositional tools.
paullouth.com
August 18, 2024 at 6:14 PM
today I found the blog series by @paullouth.bsky.social about what his plans are for #languageext v5 (paullouth.com/higher-kinds...) and I think you could appreciate part2 (and maybe read on par1 just as a refresher).
Higher Kinds in C# with language-ext [Part 2 - functors]
We introduce functors - one of the most powerful concepts in category theory - but in code form allows for the mapping of values within a structure.
paullouth.com
November 27, 2024 at 10:50 AM
Part 5 of my 'Higher Kinds in C#' series is now online. This episode I dig into 'lifting' and validation with applicatives. #csharp #dotnet #fp #languageext #validation

paullouth.com/higher-kinds...
Higher Kinds in C# with language-ext [Part 5 - validation]
We cover one of the most useful applicative types: Validation. It allows for the collection of multiple errors in a computation rather than just the first.
paullouth.com
August 18, 2024 at 6:15 PM
Part 7 of my Higher Kinds in C# series is up now. And it's finally time for MONADS! 🥳

Yet Another Monad Tutorial to add to the sea of Yet Another Monad Tutorials, yay! #csharp #dotnet #fp #languageext #monad

paullouth.com/higher-kinds...
Higher Kinds in C# with language-ext [Part 7 - monads]
An introduction to one of the monad powerful patterns in all of computer science: the monad!
paullouth.com
August 18, 2024 at 6:16 PM
As the next release of language-ext is going to be a beast; I have decided to start a blog documenting some of the new features coming down the pipe.

Starting with higher-kinds in #csharp #languageext

paullouth.com/higher-kinds...
Higher Kinds in C# with language-ext [Part 1]
Version 5 of language-ext introduces the concept of higher-kinded traits. This series unpacks the implications of that!
paullouth.com
August 18, 2024 at 6:10 PM
Part 6 of my Higher Kinds in C# series is now available. I n this episode dig into one of the most powerful types in all of functional-programming: Traversable. #csharp #dotnet #fp #languageext

paullouth.com/higher-kinds...
Higher Kinds in C# with language-ext [Part 6 - traversables]
Traversables leverage the power of applicatives and foldables to allow for complex processing over those abstract strucutures...
paullouth.com
August 18, 2024 at 6:16 PM
Part 11 of my Higher Kinds in C# series is now available. Continuing the monad-transformers story with `StateT` and a full game implementation of pontoon/21/vingt-un!

#csharp #dotnet #fp #languageext #monad #functor

paullouth.com/higher-kinds...
Higher Kinds in C# with language-ext [Part 11- StateT monad transformer]
The StateT monad transformer allows for mutation of state using pure expressions. We dive into how it works.
paullouth.com
August 18, 2024 at 6:19 PM
Part 9 of my Higher Kinds in C# series is available now. It's getting deeper now, this article we tackle Monad Transformers!

A tricky subject, but we're up to it 😉 #csharp #dotnet #fp #languageext #monad #transformer

paullouth.com/higher-kinds...
Higher Kinds in C# with language-ext [Part 9- monad transformers]
An introduction to monad transformers and how they can be used to 'stack' monadic behaviours to create super-monads!
paullouth.com
August 18, 2024 at 6:18 PM
Part 8 of my Higher Kinds in C# series is available now. We continue the deep dive into monads. This article moving away from the philosophy and onto the implementations of common monads. #csharp #dotnet #fp #languageext #monad

paullouth.com/higher-kinds...
Higher Kinds in C# with language-ext [Part 8- monads continued]
We delve into specific 'flavours' of monad by showing how to implement many of the key monadic types in language-ext.
paullouth.com
August 18, 2024 at 6:17 PM
c# -> golang. So far I'm missing `Linq`, sugar like `?.`, `??=` and LanguageExt lib. Simplicity? I see more verbosity than simplicity. .NET seem more mature? Going to revisit as I get along with it.

Ah, yes, default formatting hurts my OCD
January 19, 2026 at 6:09 PM
I guess that's how it's done in LanguageExt?
November 27, 2024 at 1:10 PM
paullouth.com
November 27, 2024 at 11:23 AM
There's LanguageExt with giant amount of effort put into making a third-party library going as close as possible for the points 2 and 3, but it's a third-party library with commercial licensing, justification for using it would be a nightmare (even stuff like NodaTime is not a de-facto standard)
November 27, 2025 at 7:49 PM
At the first glance it seems like "vanilla" LINQ would handle that without too much trouble (whether this is a common approach is a different question). Not sure if there are any Option/Either/IO types involved here, LanguageExt would probably be enough if there are.
December 10, 2024 at 8:54 PM