Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What is the F# language created to accomplish?

Tags:

.net

f#

I have noticed more and more a growing number of resources for developing applications using the F# programming language and the question came to mind of what the F# language was created to accomplish. Is it made for a specific platform, for example, Desktop, Mobile Devices, Web Applications? Also, did it include features not available in other programming languages that are currently available for developing .NET applications? Also is it still possible to create applications for the desktop, mobile, and web using F# as we can use VB or C#? Also, are there other languages similar to F# that I can use to cross-check against to get a better understanding of how functional programming works?

like image 758
Edward Avatar asked Apr 12 '11 22:04

Edward


People also ask

What does the F value tell you?

The value can be used to determine whether the test is statistically significant. The F value is used in analysis of variance (ANOVA). It is calculated by dividing two mean squares. This calculation determines the ratio of explained variance to unexplained variance.

What is the F statistic in ANOVA?

The F-value in an ANOVA is calculated as: variation between sample means / variation within the samples. The higher the F-value in an ANOVA, the higher the variation between sample means relative to the variation within the samples. The higher the F-value, the lower the corresponding p-value.

What is the F statistic used for?

F test is a statistical test that is used in hypothesis testing to check whether the variances of two populations or two samples are equal or not. In an f test, the data follows an f distribution. This test uses the f statistic to compare two variances by dividing them.

How do you find the F statistic?

The F Value is calculated using the formula F = (SSE1 – SSE2 / m) / SSE2 / n-k, where SSE = residual sum of squares, m = number of restrictions and k = number of independent variables.


2 Answers

What is the F# language created to accomplish?

The F# research project sought to create a variant of the OCaml language running on top of the .Net platform. A related project at MSR Cambridge, SML.NET, did the same for Standard ML. (OCaml and Standard ML are both variants of the ML language.) The motivations for this might have included

  1. Showing it can be done.
  2. Publishing scientific papers showing it can be done.
  3. Because ML is incredibly cool.

This shouldn't distract you from the fact that the F# product is a general-purpose programming language for the .Net platform. The benefits of F# extend across all domains. There may be users who are adopting F# more rapidly - scientific and financial programming are often mentioned - but the real reason for that is because those organizations are more amenable to adopting new technology (small teams, smart people, few managers).

Is it made for a specific platform for example Desktop, Mobile Devices, Web Applications?

No.

Also did it include features not available in other programming languages that are currently available for developing .NET applications?

Yes. They include:

  • Algebraic datatypes
  • Pattern matching
  • Type inference
  • Succinct syntax
  • Sequence expressions
  • Asynchronous workflows
  • Units of measure

Also is it still possible to create applications for the desktop, mobile, and web using F# as we can using VB or C#?

Yes but the tooling in VS2010 is incomplete. In particular, anything involving code-generation isn't well supported e.g. WPF code-behind and the Winforms designer. This may not be a problem in practice. For instance WPF with MVVM works fairly well.

Also are there other languages similar to F# that I can use to cross check against to get a better understanding how functional programming works?

Yes. Have a look at these:

  • Standard ML
  • OCaml
  • Haskell
  • Clojure

[Edit: Added comment about tooling in VS2010.]

like image 143
petebu Avatar answered Oct 13 '22 23:10

petebu


F# was created to bring a functional programming language to .NET.

It isn't intended for any particular platform. According to Microsoft Research, it "has particular strengths in data-oriented programming, parallel I/O programming, parallel CPU programming, scripting and algorithmic development". F# is used for financial and scientific applications in particular.

C# was created for Microsoft to have a modern C-like language since they were restricted from extending Java to take advantage of Windows. It was designed to be a component-oriented language and isn't specialized for the Web in any way.

F# is primarily a functional language whereas C# and VB are both primarily object-oriented.

See also:

  • In what areas might the use of F# be more appropriate than C#?
  • What are the benefits of using C# vs F# or F# vs C#?
like image 22
Mark Cidade Avatar answered Oct 13 '22 21:10

Mark Cidade