If JS is Lisp in C’s Clothing, I have no idea what clothing F# is wearing.
Rather than the traditional “Hello World” the first bits of code that we wrote was an implementation of a reverse polish notation calculator program.
The code for the function itself reminds me of writing grammars for ANTRL. I have no idea what “|” “|>” or “::” are doing in this context, but I can’t wait to find out. I was starting to get discouraged, but then following this code example the author reassures us.
“Don’t be discouraged if the RPN calculator code doesn’t make much sense right now; that’s the point! ”
Excerpt From: Dave Fancher. “The Book of F#: Breaking Free with Managed Functional Programming.” iBooks.
I am excited that I got all of this working out of the box on my Macbook. F# comes baked into the latest version of the dotnet core SDK. You can start a new F# project with the following incantation:
dotnet new console -lang F# -n MyFirstFSharpProject
You can run it with:
Like any good Lisp, F# comes with a built in REPL. It seems you need to install mono in order to get this to work. I was able to do it with homebrew.
brew install mono
Then you can fire up an F# repl with
You can test it out and make sure it works with a simple example.
> let greeting = "Hello from the F# REPL!" - greeting;; // output should be val greeting : string = "Hello from the F# REPL!" val it : string = "Hello from the F# REPL!"
I’m looking forward to learning a bit more F#. It is one of the out of the box supported languages on Azure Notebooks.