How does mono's F# coverage compare to this?
F# works very well on Mono. You can compile and use the open-source edition of the F# compiler [1] on both Linux and on OS X (though I haven't tried OS X). This port is in very early stages, and only has the start of a lexer as far as I can see. [1] https://github.com/fsharp/fsharp
Fjord – F# programming language for the JVM
41–50 of 62 posts
Re: Fjord – F# programming language for the JVM
#42How is this supposed to work given the JVM does not support tail calls?
In general speech, I can get behind the idea that you shouldn't correct someone if you understand what they mean. In programming, however, I think it's important to be pedantic. You must mean tail call optimization/elimination here. Clearly, the JVM supports tail calls.
As far as I know, we still cannot efficiently turn mutual recursive calls into a chain of jumps, but I'll be glad to be corrected here.
Re: Fjord – F# programming language for the JVM
#43Very pleased to see this. F# is a really exciting language, hamstrung by being tied to the MS platform. Hoping we'll see more opensource F# projects as a result.
F# has an open-source compiler and runs well on non-microsoft platforms using Mono. How is it tied to the MS platform?
Re: Fjord – F# programming language for the JVM
#44How is this supposed to work given the JVM does not support tail calls?
Re: Fjord – F# programming language for the JVM
#45Earlier quoted context omitted.
It's really not. Scala is a very interesting language, and it incorporates many functional features, but it's not at all ML-like. In particular, type annotations are needed in many, many places where they would be superfluous in an ML-derived language.
As a recent migrant from Ocaml to Scala (due to stagnation of Ocaml), I have to say that you are quite right about type-annotations, but the style of programming that an Ocaml/F# person would be accustomed to is quite easily replicable using Scala.
Re: Fjord – F# programming language for the JVM
#46Earlier quoted context omitted.
There are games running on Mono (e.g. Unity C# scripts, Bastion was ported to Mono to run in Chrome, etc..). I'm sure the performance of Mono may depend on your specific application but many people have been using it without any issues.
the c# performance over mono is really different to the f# performance..while c# has a decent performance on mono, f# doesn't performance so well......
Re: Fjord – F# programming language for the JVM
#47Earlier quoted context omitted.
It's really not. Scala is a very interesting language, and it incorporates many functional features, but it's not at all ML-like. In particular, type annotations are needed in many, many places where they would be superfluous in an ML-derived language.
As a recent migrant from Ocaml to Scala (due to stagnation of Ocaml), I have to say that you are quite right about type-annotations, but the style of programming that an Ocaml/F# person would be accustomed to is quite easily replicable using Scala.
Re: Fjord – F# programming language for the JVM
#48Earlier quoted context omitted.
In general speech, I can get behind the idea that you shouldn't correct someone if you understand what they mean. In programming, however, I think it's important to be pedantic. You must mean tail call optimization/elimination here. Clearly, the JVM supports tail calls.
If you want to be pedantic, the JVM does not support tail (function) _calls_, but jumps, which may be the result of tail call optimization or elimination. As far as I know, we still cannot efficiently turn mutual recursive calls into a chain of jumps, but I'll be glad to be corrected here.
The JVM most certainly does support general tail calls through its invoke instruction, which supports calls to arbitrary methods of arbitrary objects (which, of course, includes tail calls).
Some compilers also support the optimization of _some_ recursive tail calls (usually recursive tail calls to final or local methods) into loops using the goto instruction, which supports jumps within the current method (essentially optimizing the tail-recursive method into a non-recursive method containing a loop).
Re: Fjord – F# programming language for the JVM
#49Earlier quoted context omitted.
In general speech, I can get behind the idea that you shouldn't correct someone if you understand what they mean. In programming, however, I think it's important to be pedantic. You must mean tail call optimization/elimination here. Clearly, the JVM supports tail calls.
I think everyone knows what he meant. In programming, everything supports everything anyhow, as long as it's Touring complete.
Re: Fjord – F# programming language for the JVM
#50Earlier quoted context omitted.
There are games running on Mono (e.g. Unity C# scripts, Bastion was ported to Mono to run in Chrome, etc..). I'm sure the performance of Mono may depend on your specific application but many people have been using it without any issues.
the c# performance over mono is really different to the f# performance..while c# has a decent performance on mono, f# doesn't performance so well......