3 ms·
I used it for many years but ended up switching to C#. The language needs better refactoring tools. And for that it needs something like Roslyn. The existing co
by lostmsu 1y ago
I used it for many years but ended up switching to C#. The language needs better refactoring tools. And for that it needs something like Roslyn. The existing compiler library is too slow.
- munchler 1y agoThat would be nice, but refactoring canonical F# is still far easier than C# due to its referential transparency. https://dev.to/ruizb/function-purity-and-referential-transparency-7h1 https://dev.to/ruizb/function-purity-and-referential-transpa...
- lostmsu 1y agoNo, it is not. Referential transparency <<< tooling. Plus F# as a functional language has significant gaps that prevent effective refactoring, such as lack of support for named arguments to curried functions.
- munchler 1y agoCan you give me an example where lack of support for named arguments to curried functions makes refactoring difficult? I'm having trouble understanding how that would happen.
- lostmsu 1y agoFor one there's no way to add a curried parameter without doThing4-style naming and lack of named arguments implies you can't have a default value for the new parameter. Another one is if you want to add a curried parameter to the end of the parameter list, and you have code like |> myFunc a b |> ... You can't just say |> myFunc a b z=10 |> ... instead, you have to rewrite the whole pipe.
- munchler 1y agoOK, I think I see what you mean. I certainly agree that named arguments with default values can be useful, but are not supported by curried functions.