Piano Guidance
Photo by Thirdman Pexels Logo Photo: Thirdman

Why is F# so popular?

F# is not cluttered up with coding “noise” such as curly brackets, semicolons and so on. You almost never have to specify the type of an object, thanks to a powerful type inference system. And, compared with C#, it generally takes fewer lines of code to solve the same problem.

fsharpforfunandprofit.com - Why use F#? | F# for fun and profit
How do you remove Keytops?
How do you remove Keytops?

How to Remove Mechanical Keyboard Keys Step 1: Get a Keycap Puller (Or A DIY One) Plastic vs Wire Keycap Puller. ... Step 2: Insert Keycap Puller...

Read More »
Is C sharp the hardest language?
Is C sharp the hardest language?

Mandarin Chinese Across multiple sources, Mandarin Chinese is the number one language listed as the most challenging to learn. The Defense Language...

Read More »

Why you should consider using F# for your next project

Although F# is great for specialist areas such as scientific or data analysis, it is also an excellent choice for enterprise development. Here are five good reasons why you should consider using F# for your next project.

Conciseness

F# is not cluttered up with coding “noise” such as curly brackets, semicolons and so on. You almost never have to specify the type of an object, thanks to a powerful type inference system. And, compared with C#, it generally takes fewer lines of code to solve the same problem. // one-liners [ 1 .. 100 ] |> List . sum |> printfn "sum=%d" // no curly braces, semicolons or parentheses let square x = x * x let sq = square 42 // simple types in one line type Person = { First : string ; Last : string } // complex types in a few lines type Employee = | Worker of Person | Manager of Employee list // type inference let jdoe = { First = "John" ; Last = "Doe" } let worker = Worker jdoe

Convenience

Many common programming tasks are much simpler in F#. This includes things like creating and using complex type definitions, doing list processing, comparison and equality, state machines, and much more. And because functions are first class objects, it is very easy to create powerful and reusable code by creating functions that have other functions as parameters, or that combine existing functions to create new functionality.

Correctness

F# has a powerful type system which prevents many common errors such as null reference exceptions.

Values are immutable by default, which prevents a large class of errors.

In addition, you can often encode business logic using the type system itself in such a way that it is actually impossible to write incorrect code or mix up units of measure, greatly reducing the need for unit tests. // strict type checking printfn "print string %s" 123 //compile error // all values immutable by default person1 . First <- "new name" //assignment error // never have to check for nulls let makeNewString str = //str can always be appended to safely let newString = str + " new!" newString // embed business logic into types emptyShoppingCart . remove // compile error! // units of measure let distance = 10 < m > + 10 < ft > // error!

Concurrency

What is best digital piano Yamaha?
What is best digital piano Yamaha?

These are the best Yamaha keyboards and digital pianos right now: Yamaha CLP-735. Yamaha CP88. Yamaha YDP-103. Yamaha P-125. Yamaha YDP-165. Yamaha...

Read More »
When should you stop practicing guitar?
When should you stop practicing guitar?

If you're feeling tired or can't concentrate, then only practice guitar for a very short time. If you're full of energy, by all means, have a...

Read More »

F# has a number of built-in libraries to help when more than one thing at a time is happening. Asynchronous programming is very easy, as is parallelism. F# also has a built-in actor model, and excellent support for event handling and functional reactive programming. And of course, because data structures are immutable by default, sharing state and avoiding locks is much easier. // easy async logic with "async" keyword let! result = async { something } // easy parallelism Async . Parallel [ for i in 0 .. 40 -> async { return fib ( i ) } ] // message queues MailboxProcessor . Start ( fun inbox -> async { let! msg = inbox . Receive () printfn "message is: %s" msg })

Completeness

Although it is a functional language at heart, F# does support other styles which are not 100% pure, which makes it much easier to interact with the non-pure world of web sites, databases, other applications, and so on. In particular, F# is designed as a hybrid functional/OO language, so it can do virtually everything that C# can do. Of course, F# is part of the .NET ecosystem, which gives you seamless access to all the third party .NET libraries and tools. It runs on most platforms, including Linux and smart phones (via Mono). Finally, it is well integrated with Visual Studio, which means you get a great IDE with IntelliSense support, a debugger, and many plug-ins for unit tests, source control, and other development tasks. Or on Linux, you can use the MonoDevelop IDE instead. // impure code when needed let mutable counter = 0 // create C# compatible classes and interfaces type IEnumerator < ' a > = abstract member Current : ' a abstract MoveNext : unit -> bool // extension methods type System . Int32 with member this . IsEven = this % 2 = 0 let i = 20 if i . IsEven then printfn "'%i' is even" i // UI code open System.Windows.Forms let form = new Form ( Width = 400 , Height = 300 , Visible = true , Text = "Hello World" ) form . TopMost <- true form . Click . Add ( fun args -> printfn "clicked!" ) form . Show ()

Want more details?

If you want more information, the “Why use F#?” series of posts covers each of these points in much greater detail.

fsharpforfunandprofit.com - Why use F#? | F# for fun and profit
How much do pianists practice?
How much do pianists practice?

On average, a concert pianist practices at the piano about 3 to 4 hours a day. Before concert pianists get to the level and skill they are...

Read More »
What guitars get better with age?
What guitars get better with age?

Acoustic guitars have proven to the ears of many players - to sound better as they age. The theory that best explains this is - that as the wood in...

Read More »
What is F3 key?
What is F3 key?

F3 - Used for searching for files and content in various apps. F4 - Pressed simultaneously with the Alt key, as in Alt + F4, it closes the active...

Read More »
Why shouldn't you sleep with your feet uncovered?
Why shouldn't you sleep with your feet uncovered?

Without clean sheets, blankets, or socks, your feet will be unable to breathe properly, and you may inadvertently create a breeding ground for...

Read More »