/r/fsharp
This group is for people interested in the F# language, the functional-first language targeting .NET, JavaScript, and WebAssembly. More info about the language can be found at https://fsharp.org
F# is a multi-paradigm programming language compiling to both .NET ("normal") and JS (via "Fable").
Awesome F# is an aggregate of F# resources more actively maintained than this sidebar.
FSharp.org is an organization around F# promotion/adoption.
Language Documentation:
Learning Resources :
Video Channels :
Chat channels :
Web Development:
IDEs/Editor-Plugins:
Common:
Some extensions available:
Visual Studio Code with the Ionide plugin
Others:
/r/fsharp
I am learning F# and i know OpenTk is a very odd and difficult way to learn the language but i just want to render like shapes and planes and modify vertices z index.
Now what i am finding hard/confusing is that the configuration. The first thing i tried building with F# was a WPF desktop app wich i know is not dorectly supported for F# but non the less possible. I followed everything posted on yhe F# website about WPF apps and i kept getting an error that i found nothing on how to fix it online then i moved to avalonia and it worked fine.
For the 3d rendering i heard about Aardvark but same thing i installed packages copied codes to test and kept getting errors and same with OpenTk.
Can anyone here help know what exactly could i be doing wrong. Are there good up to date sources on how to use OpentTk with F#.
I am finishing a university course in Ocaml, and have an ok .NET background in C#. It appears the Ocaml to F# transition is pretty straightforward. Anyways, I'm looking for some of the more unique / fun ideas I could try and work on? Any suggestions? things your working on or maybe something from your portfolio? Looking beyond web app, and such.
The Functional Conf 2025 Call for Proposals is closing in less than a week, and it’s a golden opportunity to share your insights and innovative applications of functional programming with a vibrant community of like-minded individuals. Functional Conf is Asia’s premier functional programming conference, running 24-25 January 2025 (online).
Whether you have tackled a tricky problem using functional programming, developed a unique application, or have experiences that could enlighten your peers, we want to hear from you! We’re open to all topics related to functional programming.
We are seeking deep technical topics that push the boundaries of what’s possible with functional programming. Our commitment to diversity and transparency means all proposals will be public for community review.
Is your proposal unique? Is it well-developed and ready-to-go? Then you’ve got what it takes! Submit your ideas and help us make Functional Conf 2025 an unforgettable experience.
Submit your proposal today and help shape the future of functional programming!
Proposal submission deadline: 17 November at 23:59 IST
Im currently developing with MudBlazor and C# but Im always annoyed at C# and the way it always one step behind. So I stumbled upon F# and Bolero and saw Bolero is using Blazor to convert stuffs to wasm. So im thinking is Bolero + MudBlazor possible?
There was an active fsharp community member called fastfsharp that had quite well thought out YouTube videos and other content on performance oriented fsharp code. He seems to have disappeared
Hello,
I wrote me a little Bolero app with a client and a server which I want to put online. The application listen in dev mode on port 5000. So I would like to switch to https. Most probably this is super easy for the most dotNet developer, but I am a Java developer.
What I found out so far. Bolero uses the Kestrel webserver. There is a 'launchProperties.json' file which configures it. I can generate a certificate with 'dotnet dev-certs ..'. But here it ends for me.
Only the client has launch properties in the Properties folder. I start the server application to get the app running (Client+Server), which has no launch properties.
The launch properties of the client has a lot of port definitions, but none of them is 5000, which I used during the development. So basically I dont understand how they interact with each other.
Can somebody give me hint? I checked the source of the demo Bolero applications, but I found no https configuration, despite all of them running on https.
Has somebody an example configuration to spare?
Hi,
I am using RavenDB, a NoSQL database. I need to write indexes (map, map-reduce). I tried different ways to do that, but I didn't succeed.
I think that maybe it's not possible at all. I will paste here one simple index in c#. If anyone can help me to figure out how I can do that in F# and if it is possible at all?
Here is one simple example of the index.
I have a simple website written in Django a while ago. It was a personal project which I wanted to monetize but I had to put it in the back burner because of other priorities. After so many years, I forgot all about Django and I picked up F# in the meantime, so I was thinking about building it from scratch in F#. It was a simple website that used static templates in Django + some integration with Mapbox and also database and authentication out of the box in Django. If I were to do this in F#, what framework in F# would allow me to port the code without having to rewrite from scratch authentication and database integration?
Also, what are some simple deployment options for F#?
Thank you
Hello everyone, I'm new for F# and play with the REPL.
The above code snippet confused me a lot.
"123".Substring // it's a function of signature `( int -> string )`
"123".Substring 1 // good as expected
"123".Substring(1,2) // works as The Document shows this method is overloaded
// but how does F# figure out to call this overloaded function.
// as `"123".Substring` just returns a method of signature `( int -> string )`
"123".Substring 1 2 // why this got error, as far as I known, calling function with/without parentheses is the same.
// does the parentheses work out as a mean to help F# to call overloaded functions?
🚀 Unlock the mystery of monads!
➛ Ever wondered why they’re called a monoid in the category of endofunctors? 🤔
⭐️ Join this FREE event and find out.
🗓️ Nov 1, 6PM CET
🔗Link:https://www.meetup.com/fsharp-the-missing-manual/events/304062396
JetBrains just announced a big shift for Rider, making it free for non-commercial use starting October 24. Whether you're a student learning, a developer creating open-source projects, or a hobbyist tinkering with game development, you can now use the full version of Rider without a subscription. This is a significant move, especially for those of us who code outside of work on side projects or are diving into game dev with Unity or Unreal Engine.
This isn't a watered-down version of Rider, either. You get the full set of features, including the powerful DataGrip functionality for databases and a free trial of AI services that can take your projects to the next level. Whether you're working on .NET apps or experimenting with game engines, it's worth checking out if cost has been a barrier for you before.
If you've been on the fence about trying Rider, why not give it a try?
https://blog.jetbrains.com/blog/2024/10/24/webstorm-and-rider-are-now-free-for-non-commercial-use/
Hi everyone! As yet another developer who loves to code in F# but is more familiar with C# (due to to exclusive use of the latter at work), I have been generally struggling a little bit with Web API frameworks in F#. For reference, I've used both MVC (mostly in the past) and Minimal APIs (last 2 years) extensively in C#, and nowadays I much prefer using the latter.
In F#, I've used Giraffe in an MVC approach to okay/good results (works absolutely fine, but I'm a bit slower due to lack of familiarity). However I struggled with getting a Minimal API approach out of it. Not that it's impossible, I've watched videos like this one but configuration seems quite convoluted and cumbersome to me and my efficiency goes out the window. In the last year I've resorted to using F# for the domain logic and a C# Minimal API as the interface to my app. Ain't nothing wrong with that and god bless the CLR that it allows you to easily blend both.
Anyway, I recently came across the FSharp.MinimalApi library, which was developed by one of the redditors here, u/lucasteles42, as a thin wrapper around ASP.NET Minimal APIs. I was wondering if anyone has used it, what your experiences were and if you feel that any crucial features are missing. Any opinions welcome.
PS. This isn't a plug for the library, I don't know the developer, I'm just looking for people's opinions before I invest a considerable amount of time switching my C# Minimal API application interface to an F# one.
Hi there - I haven't been super active on this sub for a while, and haven't really been doing much moderation.
Since it's been a while, I wanted to check in - are things going alright, by your account? Is more (or less?) moderation needed? Maybe the rest of the mod staff has been more active, but at some point I recall we all sorta got sucked into "work F#" :) If you think more moderation would be useful (incl fun weekly/monthly threads), I'd appreciate recommendations of folks to help out. If not, cool.
I still love F#, and use it daily, but lately my Reddit-ing has been eInk+billiards+etc, and my dev-time has been almost wholly focused on my day-job (which, self-promo, is writing a language+platform in F#).
I suspect this subreddit has been fine with hands-off mods, and this post won't result in anything, but wanted to touch base briefly.
In python and powershell, my debugger console lets me evaluate expressions.
For complex development, I run to a breakpoint, then I thrash out the next line in the debugger, in the scope of the code I'm working on.
It's approximately what lisp fans boast about, and the most effective way to get fast feedback.
I use VSCode on Linux at the moment, and the debugger console does not understand F#. Watch expressions use C# syntax and the console is very limited. This rules out development work - you day as well do tdd and keep cycling tests.
Is there an editor for Linux that gives a true F# repl in the debugger?
I am in a situation where my company has multiple internal APIs that supply functionality to a series of applications. We use .NET and C# a lot. I've made the case (which has been well received) that since business folk know the domain better than devs, and that they can read F# easily with little-to-no explanation, that it is a no-brainer to define types in F# for consumption across the business.
I can imagine a reflection-based approach to encode the domain types to OpenAPI schemas, but does anyone know any tools that are specifically suited to this task?
As a React developer transitioning to F#, I'm seeking guidance on implementing efficient data caching in F#/Fable, similar to what React Query offers in the React ecosystem.
In my React projects, I heavily rely on React Query for fetching, mutating, and most importantly, caching data from the server. This approach significantly reduces unnecessary network requests and improves application performance.
I've come across Fable Remoting, but I'm struggling to find a comparable caching solution. My specific use case is as follows:
Can anyone provide insights on how to implement this type of caching mechanism in F#/Fable? Are there any libraries or best practices that address this need?
I need to create some application for lego bricks. What would be the easiest way to create some UI?
I tried with bolero, but it’s really slow rendering. I guess I should play with components, but it doesn’t look straight forward.
I did something with sutil in the past, but also not sure is that way to go.
Maybe avalonia?
I don’t care if it is web or desktop for now, just to be simple🙂
Thank you
Hi, folks. By way of introduction I'm learning F# and trying to find a meaningful project to work on. I'm a senior DevOps engineer and one of my constant bugaboos is CI/CD pipelines. Many SaaS services provide no way of running a pipeline locally to test the code, and there's inevitably tons of bespoke scripting that has to be done for any non-trivial app, on top of the SaaS-specific YAML.
For some time I've been thinking about just implementing our CI/CD pipelines entirely in .NET. This would make them runnable locally and also make them portable across SaaS offerings. I've looked at NUKE Build and Modular Pipelines for C# but they're very class oriented, and after working with F# C# syntax reminds me of obfuscated perl. FAKE seems to have kind of stalled with the .NET Core rewrite.
What I need is the ability to define build targets and dependencies, execute targets in parallel if they're not dependent, handle external tool invocations, execute specific targets (and their dependencies) from the tool - basically I'd kind of like an F# idiomatic NUKE. Is there anything like that out there? Maybe a Workflow library?
I feel like F# would really benefit from a distinction between pure and impure functions. I was kinda disappointed to learn the distinction wasn't already there.
Anyone had a chance to play around with F# and Native AOT? All input welcome.
It's on my list but work keeps getting in the way :-).
Peace