F# and C# software developer and company owner.

Kirschweiler, Deutschland
Joined March 2012
We’ve been watching the conversation unfold in recent PRs on the .NET runtime repo, which Copilot was tasked to resolve and it says a lot about where we are with AI in software right now... 👇 buff.ly/TjDHhje
1
1
5
274
Learn how to run an #fsharp app in a Docker container with @sirhamy #dotnet buff.ly/lweyrIs
1
3
1
12
935
Anders Hejlsberg has an F# book behind.
9
12
3
50
8,654
Daniel Hardt retweeted
110
100
28
2,665
287,244
Daniel Hardt retweeted
This is one of the wildest git diffs I've ever seen
218
1,569
193
16,428
920,065
Daniel Hardt retweeted
And now take a look at this beautiful idiomatic #fsharp code to balance parentheses. - It uses an immutable list of F# ('T list), which is persistent and functionally handled, there is no explicit mutability; each "push" creates a new list (although the compiler optimizes this with tail recursion) - Uses pattern matching and operators such as ::, which are central in F# and reflect a pure functional style - The state of the stack is passed as a parameter in each recursive call (stack), maintaining immutability and only depends on the native F# lists, without the need to define an additional class
Well, well, well. We have a problem, implementing this stack explicitly in #fsharp.
3
4
15
1,060
Demystifying the Enigma Machine - a Functional Journey by @isaac_abraham Register for free and read more at: meetup.com/func-prog-sweden/… Kind regards @KivraHq for the venue. And you can join from anywhere as we are live streaming. #funcprogsweden #functionalprogramming #fsharp
2
4
327
In this week's blog post, Joost learns more about the feature range of #fable while trying to format some dates! #dotnet #fsharp #webdev buff.ly/4b5VEkd
1
2
8
313
Daniel Hardt retweeted
Presenting "F# by Example", a fork of Go by Example but for F# - a new reference source for those who are both new and experienced with the language. fsharp-by-example.com #fsharp @fsharponline
3
15
61
1,791
Watch out you might just starting enjoying F# more.
#csharp devs, can't wait for type unions? Consider trying #fsharp's discriminated unions, we love them! @fsharponline #dotnet buff.ly/42KmBYi
1
1
4
137
#csharp devs, can't wait for type unions? Consider trying #fsharp's discriminated unions, we love them! @fsharponline #dotnet buff.ly/42KmBYi
1
6
1
14
554
Just finished reading "Functional Design and Architecture" by @graninas. As promised, my book review. TL;DR It's a good book. But it's not for everyone. First of all, the target audience is crucial for the book. If you're an author, it's important to understand your audience. If you're a reader, it's important to know whether you're in the target audience to benefit from reading. I had the impression that this book's target audience consists of Software Engineers who know FP and even Haskell but are not satisfied with popular design approaches and want to get inspiration from mainstream practices. I don't think there is a huge number of such people; Haskellers are usually inward-looking. But if you're one of them, you're quite open-minded, and you'll benefit from this book a lot. Another challenge of this book: I feel like it covers diverse topics. I can imagine at least several books written in detail about themes mentioned in this book: 1. Making diagrams for sharing your thought process and architecture 2. A Haskell tutorial 3. A Free Monad tutorial 4. A DDD tutorial 5. Comparison of FP approaches 6. Testing in the FP world 7. Concurrency tutorial 8. Importance of the Systems Design 9. Hierarchical Free Monads and FDD This is a good thing! It means that value for money is great, and you can learn about many topics from one book. But at the same time, this book can't afford to cover every single topic in detail. You have to have some knowledge about them and be on board with the main ideas to understand their value. The author respects the reader. There's little jargon. There's no gatekeeping. Trivial things are not explained. Yet complex things are elaborated. While food for thought is left to the reader. This book is like a text RPG quest: you're given directions to complete your task but you have to do the rest of the work on your own. I liked the first example about designing the scripting language for a spaceship system. It's not a boring example, and you can easily see how real-life software can get complicated. Even this highly simplified demo example in the book is already quite difficult to implement. I especially liked the part about Software Transactional Memory (STM). The book did a great job explaining how systems can instantly skyrocket in complexity once you add a tiny requirement e.g. logging inside a transaction. Alexander presents the approach with Hierarchical Free Monads. But you can clearly see that the author is not trying to push this approach for every single use case. There's a comparison between Handle, ReaderT, Final Tagless and Free Monadic patterns and the Free Monad's one is not the best choice for the task in question. My verdict: if you really want to level up your systems design skills and learn some FP approaches, it's a good book to read. But please, read a Haskell tutorial first. ----- As a side note, reading this book made me reflect on the complexity of modern software. While reading, I kept thinking "Is this complexity really justified? Is FP really good?" For context, just to implement a Web Backend framework based on Free Monads, I noticed that the following Haskell features were used: Algebraic Data Types Typeclasses Monads Higher-Order Functions Higher-Kinded Types MultiParamTypeClasses GADTs FunctionalDependencies TypeApplications AllowAmbigousTypes TypeFamilies Rank2Types I know all these features. And their usage makes sense. But I tried putting myself into the shoes of the person who doesn't know anything about FP. And in those shoes, it's really hard to see whether learning these 10 FP features is superior to learning 10 OOP patterns. No matter what you think, software can be really complex. This book demonstrates this well. And if language features or design patterns can really help with simplifying them, why not use them? But the learning journey takes a while. You can't become an expert instantly.
Yesterday, I finished reading a book. Today, I started reading a new one. The grind never stops. Now, you can find me in London Underground reading “Functional Design and Architecture” by @graninas. I feel like it’ll be a perfect continuation of the previous book. Even Scott himself left a positive testimonial. I’ve been doing functional architecture by myself for a decade and learning from my personal experience. So I’m curious to learn from experience of others! This book stirred some controversy. Some people love it, some people vehemently hate it. But you shouldn’t listen to other people, it’s always better to see for yourself. Knowledge doesn’t forgive shortcuts.
10
23
4
211
29,565
Interested in using #functionalprogramming but wondering how to translate your favourite algorithms to work with immutable data? Matt shows how use #fsharp to write a functional breadth-first search in this week's blog post. #dotnet #adventofcode buff.ly/4aHWKlJ
1
11
271
Amin hits the nail on the head with his list of favourite #fsharp features! What's yours? #dotnet @fsharponline buff.ly/42kXU4w
1
5
14
379
Decoding JSON does not have to be a chore: In this week's blog post, @larocceau gives a demo of Thoth.Json, a flexible and fun to use JSON package! #dotnet #fsharp @fsharponline buff.ly/3DUH4zx
1
4
9
496
We recently switched to the #fable plugin for #vite for one of our projects, and so far we are very excited! #dotnet #fsharp @fsharponline buff.ly/4jinHAs
1
2
8
332