The combined power of F# and C#

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

Our great sponsors
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
  • SaaSHub - Software Alternatives and Reviews
  • SharpLab

    .NET language playground

  • language-ext

    C# functional language extensions - a base class library for functional programming

  • > but I just want something closer to Scala, but for .Net

    That's what I'm working toward with my language-ext library [1]. Obviously more support for expression based programming would be welcome (and higher kinds), but you can do a lot with LINQ and a good integrated library surface.

    [1] https://github.com/louthy/language-ext

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
  • core

    WebSharper - Full-stack, functional, reactive web apps and microservices in F# and C# (by dotnet-websharper)

  • Suave.IO

    Suave is a simple web development F# library providing a lightweight web server and a set of combinators to manipulate route flow and task composition.

  • csharplang

    The official repo for the design of the C# programming language

  • Given few people anticipated ValueTuple and C# adding a more direct tuple syntax, I feel like it is only a matter of time before C# adds discriminated unions.

    (There are multiple proposals tracking the idea. This seems the most comprehensive and "central": https://github.com/dotnet/csharplang/issues/7016)

  • you can easily do them, I added a comment on the article showing how....

    https://github.com/linkdotnet/Blog.Discussions/discussions/7...

  • OneOf

    Easy to use F#-like ~discriminated~ unions for C# with exhaustive compile time matching

  • WorkOS

    The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.

    WorkOS logo
  • Giraffe

    A native functional ASP.NET Core web framework for F# developers.

  • Giraffe is another interesting one to explore: https://giraffe.wiki/

    Giraffe is nice because it is itself built "just" as ASP.NET Core Middleware so it plays a bit more nicely than Suave with a mixed stack of C#-defined Middleware.

    It's more likely you accidentally fall back into just translating C# patterns to non-idiomatic F# with Giraffe, but it's also nicer when in that case of needing to live in both worlds and use a mixture of libraries built for C# ASP.NET projects.

  • avalonia-dotnet-templates

    Avalonia Templates for `dotnet new`

  • Avalonia does Just Work from F#; it even has `dotnet new` templates for F# (https://github.com/AvaloniaUI/avalonia-dotnet-templates).

  • best-form

    The best form of documentation is the code itself

  • It isn't Haddock, it's simply inspired by Haddock. It's a library I wrote called best-form [1]. The README gives context:

    "This is a C# doc-gen tool. It was primarily built to support my Language-Ext project. Which is non-idiomatic in its approach. I couldn't find documentation generators that did it justice. I also really liked the Hackage documentation style from Haskell, so have taken a styling approach from there (even if it looks a little dated now, it was always the documentation I felt most comfortable reading)."

    language-ext isn't idiomatic C# and so idiomatic C# doc-gens have quite a bad time with this library. One of the major benefits over other doc-gens is it grabs the README.md from each folder and prepends it to any section, allowing me to write some contextual documentation outside of the auto-generated API documentation.

    [1] https://github.com/louthy/best-form

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts