F# Mono Debugger Extension

Hi. Currently learning F# by doing HackerRank problem and found out that F# with Mono-based Integrated Development Environment (IDE) was Mono Develop. Unfortunately, I’m currently using MacOS which if I attempt to download Mono Develop, it goes to Microsoft Visual Studio for Mac download link instead.

I have tried to run and debug the code using Visual Studio for Mac, unfortunately, due to HackerRank compiler standard, my code just won’t run because of some .NET influenced symbols such as Int32, Console.ReadLine() considering it as commonly used in .NET environment.

I have searched for about 2 weeks now for F# debugger that uses Mono-based environment (Correct me if I’m wrong for calling it debugger) and can’t find any IDE equal to Mono Develop. I may need some advice to work around with this problem.

Hello Yosua,

I suggest you give a try at vscode and ionide extension: https://ionide.io/ which is pretty easy to setup, and get familiar with the dotnet sdk: .NET | Build. Test. Deploy. which has command line tools to setup F# project, those tools don’t have any license or fee restrictions.

You can also try the Rider IDE from JetBrains, it is possible to use the “early access protocol” or a 30 days trial, it is full fledged IDE, very robust.

With either, you’ll be able to compile, run, step debug F# code.

MonoDevelop and VS for Mac have been having much lower activity in terms of F# support, Microsoft is deprecating VS for Mac in near future. The mono runtime is also not as performant as the recent cross platform dotnet SDK above.

1 Like

Dear gauthier,

Thank you for reaching me out in this community forum. I have tried ionide extension and it seems it still accept the .NET syntax. Just to be clear, how can I ensure my F# code didn’t influenced in .NET such as Console.WriteLine() I mentioned earlier?

And thanks for warn me regarding the VS for Mac! :grinning:


Yosua, I’m not sure about what you are alluding to with F# code being by .NET, or the .NET symbols, F# runs on the .NET runtime, depends on the Base Class Library. I don’t see a way for this to not be the case.

Could you share some of the code you have, and the reason it is not suitable for your use?

Dear @gauthier

It’s been one month since I asked about the F# code and the influence in .NET.
It seems I had a bad understanding of F# back then, leading me to misconceptions about using this programming language. Of course, I’m not stopping using F# since back then, I learned the Programming Language Concept of F# and eventually fixed the code myself!

Thanks in advance.