How to compile F# in any version on mac?

Viewed 132

(I am aware of the existing stack overflow question How to use F# 4.7 on Mac? that is very similar, but not identical, and that have no solution yet)

On my mac (catalina 10.15.7) I installed the .NET core via this link with no issues.

The command

dotnet --help

correctly returns the help.

When trying to initialise a new project, it fails with:

$ dotnet new –lang f#
Getting ready...
Couldn't find an installed template that matches the input, searching online for one that does...
No templates found matching: '–lang'.

$ dotnet new --lang "f#"
Invalid input switch:
  --lang
  f#
Run dotnet new --help for usage information.
See https://aka.ms/dotnet-install-templates to learn how to install additional template packs.

So how do I start a project or run a F# file on mac? Is there any up to date blog post providing a tutorial for installing an F# compiler?

----- EDIT -----

The command dotnet new returns:

$ dotnet new
Templates                                         Short Name          Language          Tags                  
--------------------------------------------      --------------      ------------      ----------------------
Console Application                               console             [C#], F#, VB      Common/Console        
Class library                                     classlib            [C#], F#, VB      Common/Library        
Worker Service                                    worker              [C#], F#          Common/Worker/Web     
Unit Test Project                                 mstest              [C#], F#, VB      Test/MSTest           
NUnit 3 Test Project                              nunit               [C#], F#, VB      Test/NUnit            
NUnit 3 Test Item                                 nunit-test          [C#], F#, VB      Test/NUnit            
xUnit Test Project                                xunit               [C#], F#, VB      Test/xUnit            
Razor Component                                   razorcomponent      [C#]              Web/ASP.NET           
Razor Page                                        page                [C#]              Web/ASP.NET           
MVC ViewImports                                   viewimports         [C#]              Web/ASP.NET           
MVC ViewStart                                     viewstart           [C#]              Web/ASP.NET           
Blazor Server App                                 blazorserver        [C#]              Web/Blazor            
Blazor WebAssembly App                            blazorwasm          [C#]              Web/Blazor/WebAssembly
ASP.NET Core Empty                                web                 [C#], F#          Web/Empty             
ASP.NET Core Web App (Model-View-Controller)      mvc                 [C#], F#          Web/MVC               
ASP.NET Core Web App                              webapp              [C#]              Web/MVC/Razor Pages   
ASP.NET Core with Angular                         angular             [C#]              Web/MVC/SPA           
ASP.NET Core with React.js                        react               [C#]              Web/MVC/SPA           
ASP.NET Core with React.js and Redux              reactredux          [C#]              Web/MVC/SPA           
Razor Class Library                               razorclasslib       [C#]              Web/Razor/Library     
ASP.NET Core Web API                              webapi              [C#], F#          Web/WebAPI            
ASP.NET Core gRPC Service                         grpc                [C#]              Web/gRPC              
dotnet gitignore file                             gitignore                             Config                
global.json file                                  globaljson                            Config                
NuGet Config                                      nugetconfig                           Config                
Dotnet local tool manifest file                   tool-manifest                         Config                
Web Config                                        webconfig                             Config                
Solution File                                     sln                                   Solution              
Protocol Buffer File                              proto                                 Web/gRPC              

Examples:
    dotnet new mvc --auth Individual
    dotnet new web 
    dotnet new --help
    dotnet new classlib --help
1 Answers

Watch out for formatting when copying from web sites

The dash in the question's –lang isn't the minus character -, it's an en dash. I suspect you copied the command from a web site that replaced the minus character with an en dash. This is similar to sites replacing " or ' with typography quotes.

Type the command directly instead of pasting it.

Original Answer

new has no --lang option. Try -lang or --language to list all available templates for a language. To specify f# type f# eg :

> dotnet new -lang f#
These templates matched your input: language='f#'.

Templates                       Short Name      Language      Tags
--------------------------      ----------      --------      -----------------
Console Application             console         F#            Common/Console
Class library                   classlib        F#            Common/Library
Worker Service                  worker          F#            Common/Worker/Web
Unit Test Project               mstest          F#            Test/MSTest
NUnit 3 Test Project            nunit           F#            Test/NUnit
NUnit 3 Test Item               nunit-test      F#            Test/NUnit
xUnit Test Project              xunit           F#            Test/xUnit
ASP.NET Core Empty              web             F#            Web/Empty
ASP.NET Core Web App (M...      mvc             F#            Web/MVC
ASP.NET Core Web API            webapi          F#            Web/WebAPI
Related