3 ms·
It's possible to write functional C# code, as well.
by dleslie 6y ago
It's possible to write functional C# code, as well.
- pharmakom 6y agoIt’s possible but it’s just not the same.
- xupybd 6y agoYeah you can. I find it a little more clunky. Many of the things I prefer are just syntactic sugar. But if I'm honest I really like syntactic sugar. On top of that I find functional first languages are great for forcing you to learn functional styles that you can later user in languages like C#. C# is a brilliant language and I wouldn't knock it. I'd use that as a first option at work but on a hobby project I'm going to play with F#.
- paavohtl 6y agoEhh, not really. It depends on how you define functional programming. C# supports first class functions, tuples, some form of pattern matching and LINQ extensions support basic FP collection operations like map (Select), filter (Where) and fold (Aggregate). But I think that's just scratching the surface compared to a "real" FP language: - F# has function composition operators - F# functions are curried and support automatic partial application - F# variables and data structures are immutable by default - F# has powerful global HM type inference - F# uses option & result monads over exceptions and null - F# has algebraic data types with exhaustiveness checking These capabilities make writing code in F# a very different experience from C#. Some of these can be added to C# as features, but many things are fundamental parts of language design that are hard to change afterwards.
- dleslie 6y agoThat stinks of microallocations from enormous stacks of closures, boxing and similar.