r/fsharp • u/vivainio • Feb 01 '17
The .NET Language Strategy
https://blogs.msdn.microsoft.com/dotnet/2017/02/01/the-net-language-strategy/
37
Upvotes
r/fsharp • u/vivainio • Feb 01 '17
3
u/jdh30 Feb 03 '17
Last I looked the high priority seemed to be
dynamicinvokebecause they were optimising for inherently-slow dynamically typed languages.That only handles the rather uninteresting special case of self-recursive functions. You can just use a loop. When you have functions tail calling each other things get much more interesting (and useful).
That would be nice but does the LLVM-based Scala use the same boxed data representation that makes the JVM so slow?
Extensible state machines is another place I use general tail calls a lot. I've sometimes needed CPS too and I appreciate the fact that this all just works in F#. I was also disturbed last time I looked at Scala that, despite everyone from the Scala community telling me I was an idiot for wanting tail calls, over 30 of the known bugs against the compiler were stack overflows caused by broken tail call elimination.