4 ms·
Proving Things About Biology with F#
- m0skit0 12y agoAny hints on why would anyone choose F# over the multitude of functional languages out there? (This is not a sarcasm, I'm actually looking for real answers :))
- lucian1900 12y agoTo me, it's an ML with good access to useful libraries and that can easily be distributed on any OS.
- tel 12y agoFirstly, he works at Microsoft Research in Cambridge. Secondly, he's using MSR's Z3 SMT solver which maybe has really nice F# bindings. Thirdly, he suggests somewhere toward the end that he finds Visual Studio + F# nicer than Emacs + OCaml for doing exploratory programming, though he doesn't exactly explain it at all.
- kvb 12y agoIt depends on what you're looking for, of course. There are certainly a few unique features that are very nice (e.g. type providers, units of measure, etc.). Compared to Scala, there's much better type inference and more of an emphasis on the functional as opposed to object-oriented side, though both languages support both paradigms (and Scala supports things like higher-kinded types which F# lacks). Compared to other ML-family languages, F# has broader access to libraries thanks to its very nice .NET interoperability (but much weaker support for true ML-style modules). F#'s tooling is also much better than that of most functional languages (especially on Windows via Visual Studio, but people seem very happy with the tooling on Linux with Mono, too). But personally the thing I most like about F# is the community.
- Matthias247 12y agoI'm currently new to this too and just doing some smaller experiments with F# but reasons for me would be: - Powerful tooling with IDE, Debugger, Packet Managers, Build system - Access to the whole .NET ecosystem - Powerful concurrency and parallelism constructs - relatively easy to reason about. If you don't know how to build something functionally you can still build things in a C#-like way because mutability and strict evaluation is there. - I like the very concise and yet good to understand syntax. The type interference is great.
- enricosada 12y agoWhy use f#? see http://fsharpforfunandprofit.com/why-use-fsharp/ http://fsharpforfunandprofit.com/why-use-fsharp/ (concise for programmers) or http://fpbridge.co.uk/why-fsharp.html http://fpbridge.co.uk/why-fsharp.html (more high level) more info about fsharp at http://fsharp.org/ http://fsharp.org/ my take: #ecosystem - vibrant and friendly community - open source (long time ago, use pr, wrote by community) - cross plat (linux/mac/win/ios/android) - is .NET, same standard library as C# or VB.NET and virtual machine (CLR). Finally open source - use nuget components written for .net #language - fun to use - concise, i can easy write code without boilerplate - easy async, parallel, gpu - easy interop with c#, native - fast - multi-paradigm (functional first, but can do oop like c#) - help write correct code (no null reference => no null reference exception, pattern matching, - unit of measure (like 1<m/s> ) and a lot, read the links above for a better (and faster) summary
- m0skit0 12y agoI don't understand the cross-platform part, isn't F# .Net? Then how is it cross-platform? Also open source, that's nice, but what's the license? Also Microsoft is not very friendly to open source, why would I trust them to keep it this way?
- jackfoxy 12y agoMono today for Linux and Xamarin for Android, iOS, & Mac, and Core .NET http://blogs.msdn.com/b/dotnet/archive/2014/11/12/net-core-is-open-source.aspx http://blogs.msdn.com/b/dotnet/archive/2014/11/12/net-core-i... will soon be a viable choice on the other platforms, and only get better with time. There are builds of the F# language for all these platforms.
- enricosada 12y agoFSharp was one of the first open source microsoft projects year ago about license: https://github.com/Microsoft/visualfsharp/blob/master/License.txt https://github.com/Microsoft/visualfsharp/blob/master/Licens... -> http://www.apache.org/licenses/LICENSE-2.0 http://www.apache.org/licenses/LICENSE-2.0 the open source repo https://github.com/fsharp/fsharp https://github.com/fsharp/fsharp is open source AND accept pull request, the development is done on github, very friendly the .NET too is going opensource, see https://github.com/dotnet/corefx https://github.com/dotnet/corefx (.NET base class libraries) and https://github.com/dotnet/coreclr https://github.com/dotnet/coreclr (.NET virtual machine) and https://github.com/dotnet/roslyn https://github.com/dotnet/roslyn (C#/VB compiler)
- mightybyte 12y agoI would consider F# if interoperability with the .NET ecosystem was important for my task. Otherwise I would probably pick Haskell.
- Rickasaurus 12y agoThe biggest reason is .NET and all of the nice tooling that come along for the ride. Profilers, remote debugging with breakpoints on other machines, recording program state over execution, cross compilation to phones for free, a rich ecosystem of libraries, etc. There are other good reasons though. Modern day F# is (except for a very small number of type resolution foibles) 100% backwards compatible to the first release. This is a huge problem for Haskell in business. Also, Type Providers are totally awesome for scripting over structured data.