4 ms·
My guess is that they only include the types of the parameters to disambiguate between overloads. Since you can't overload based on the return type they don't i
by MichaelGG 11y ago
My guess is that they only include the types of the parameters to disambiguate between overloads. Since you can't overload based on the return type they don't include it.
C# is fantastic compared to Java and seems to avoid a lot of the crap. But F# trumps C# in just about every aspect, apart from having lots of funds for tooling.
- thomasz 11y agoF# has downsides too. It's a way more complicated language with way more magic (type providers, custom computation expressions etc.) compared to c#.
- MichaelGG 11y agoC# has "computation expressions", except they are hard-coded into the compiler. It has duck typing, but it's hard-coded into the compiler. So instead of understanding a general concept, you learn specific instances. That's certainly less elegant, and I'd guess just as complicated - but I'd say that's more magic on C#'s side since in F# it's just simple concepts repeated. I don't know if type providers are more complicated than partial classes, and they probably should have been some generic macro system instead of just type generators. I don't have a good definition for complicated, but I'd be surprised if C# is actually less complicated. (Something number of core concepts and interactions.) Certainly if we take expressiveness/complication F# come out far ahead.