270 votesMaciej J. Bańkowski commented
to some Anonymous: variable names are important
if you are lazy enough to name variables $1 $2 $3 then just name them a b c - it is even shorter.
Besides, names do matter for maintainability. 2-3 months from now, nobody will know what the original programmer indented to do - names help.
On topic: It would be so cool to get rid of the 'fun' keyword and make lambdas as sexy as those in C#. However, I doubt it is possible due to statement evaluation logic of F# and ambiguity that would arise without some arbitrary discriminator for lambda expression.
In C# lambdas are clear from the context and I am not sure F# context is rich enough to get by without the 'fun' keyword but maybe it is - would be awesome.
111 votesplanned · Adminfsharporg-lang (F# Software Foundation Language Group, F# Software Foundation) responded
Marking as “approved in principle” (it will show as “planned”).
However, in reality it is both relatively low priority and relatively hard to implement, so I don’t expect this to happen any time soon.
For example, we would have to reverse-map the metadata associated with F#-specific types. This is already done in F# reflection FSharpType.IsRecord and so on.
215 votesMaciej J. Bańkowski commented
@Joel Mueller, I have created a pull request for Neo4jClient that includes support for tuples: https://github.com/Readify/Neo4jClient/pull/56 It is not perfect but works as a workaround for the lack of anonymous types.
BTW I totally agree F# should support something like anonymous record types. I do not know why this comes up so late in the F# dev cycle but the requirement to create one-time-use types to work with data is hard for me to understand. As @Lev Gorodinski noted, dynamic has major drawback in that it relaxes strong typing which is a very important F# feature we should keep.
Does anyone know if there is any technical issue preventing implementation of anonymous types in F#?