967 karma · joined November 7, 2012
But more fundamentally, adding features like these to C# is awesome, but there's no way to remove now-obsolete patterns without breaking legacy code, so it's still possible to shoot yourself in the foot in many ways that you can't in F#.
Some other authors have also addressed this question recently: [1], [2].
[1] http://fsharpforfunandprofit.com/posts/is-your-language-unre... [2] http://blog.ploeh.dk/2015/04/15/c-will-eventually-get-all-f-...
But personally the thing I most like about F# is the community.
[0] http://stackoverflow.com/questions/23006951/encoding-standar...
il {
ldc_i4 6
ldc_i4_0
ldc_i4 7
add
mul
ret
} interface Transducer<A,B> {
Func<R,B,R> Apply<R>(Func<R,A,R> f);
} Transducer a b
is isomorphic to b -> [a]
Am I missing something?As far as I know, F# is the only reasonably popular .NET language to emit the tail. prefix, though[3].
[1] http://blogs.msdn.com/b/davbr/archive/2007/06/20/tail-call-j...
[2] http://blogs.msdn.com/b/clrcodegeneration/archive/2009/05/11...
[3] http://blogs.msdn.com/b/fsharpteam/archive/2011/07/08/tail-c...