3 ms·
Why over OCaml? * Easy multi-platform targetting and platform bindings without fuss. * Mature and supported BCL and 3rd party libraries * Access to the .NET
by Associat0r 13y ago
Why over OCaml?
* Easy multi-platform targetting and platform bindings without fuss.
* Mature and supported BCL and 3rd party libraries
* Access to the .NET ecosystem tooling like profilers, debuggers etc
* Easy to use Native FFI without having to write boilerplate C stubs
* Active Patterns
* Built-in Units of measure without perf cost.
* Built-in support for Unboxed Structs with Layout control and operator overloading
* Unboxed floats, not just for 64 bit ones syntactically present in arrays
* Built-in control over inlining
* 32 bit ints not 31
* Type Providers allowing typed access to untyped data and much more
[F# 3.0: Data, Services, Web, Cloud... at Your Fingertips] (http://channel9.msdn.com/Events/TechEd/Europe/2012/DEV338 http://channel9.msdn.com/Events/TechEd/Europe/2012/DEV338)
http://www.navision-blog.de/2012/03/25/typed-access-to-json-and-xml http://www.navision-blog.de/2012/03/25/typed-access-to-json-...
http://www.navision-blog.de/2012/03/22/wpf-designer-for-f/ http://www.navision-blog.de/2012/03/22/wpf-designer-for-f/
http://blogs.msdn.com/b/dsyme/archive/2012/08/03/access-statistical-packages-from-r-with-f-3-0.aspx http://blogs.msdn.com/b/dsyme/archive/2012/08/03/access-stat...
* Built-in support for runtime code quotions, with code inspection
* Built-in support for runtime reflection
* OOP abstractions without perf loss
* Built-in support for Operator overloading
* Polymorphic print function
* Mature Multicore friendly runtimes
* mutable local variables on the stack
* Cleaned up offside-rule indent based syntax with optional OCaml style override.
* Partial application of Discriminated Unions like List.map Some [1; 2; 3]
In OCaml you have todo List.map (fun x -> Some x) [1; 2; 3]
* Methods on Records and Discriminated Unions
* Extension Methods
* Built-in syntax for Array slicing
* Built-in syntax for sequence based for loops
* Built-in syntax for List / Array range construction like [1 .. 10]
* Extensible computation expression syntax for more than just monads.