News for hackers. Stuff that matters.
Re:C# functional language extensions and Erlang-like concurr... by innocentoldguy on Monday January 30, 2017 @12:28AM (#13518918)
I think mixed-paradigm languages make it harder to get started with functional programming, since they provide a crutch to other paradigms, which people tend to fall back on. I'd recommend Scheme, or maybe Elm (if you're doing web programming), as good starting points to learn FP, since both languages are relatively simple to learn and won't let you implement OOP, for instance.
Re:C# functional language extensions and Erlang-like concurr... by Impl0x on Monday January 30, 2017 @12:25PM (#13523086)
I got started with functional programming with F#. I agree that there were times when I used its hybrid nature as a crutch, but I think there's a value in using a hybrid language if your goal is to learn. F# let me write out code in an imperative style that did what I wanted it to do, and then from there I could refine the code and take advantage of the functional features as I learned them. It's a nice way to learn which features from the different paradigms are equivalent, and it really lets you appreciate what you gain from using FP.
Re:C# functional language extensions and Erlang-like concurr... by catnaroek on Monday January 30, 2017 @12:39AM (#13518954)
Scheme will let you implement an object system on top of it, using mutable closures, and perhaps macros for syntactic sugar.
Re:C# functional language extensions and Erlang-like concurr... by nonsince on Monday January 30, 2017 @08:24AM (#13520902)
The most popular Scheme (Racket) comes with an object system, that I almost instantly fell on when I came to it from C#. I don't think there's any substitute to just explaining the problems with OOP.
Re:C# functional language extensions and Erlang-like concurr... by innocentoldguy on Thursday February 02, 2017 @06:42PM (#13556144)
That depends on how you think about problems, I think. I understand OOP, and have written OOP code for two decades, using languages like Java, C#, Ruby, C++, etc. However, OOP never felt like a natural way to think to me. The first time I worked with a functional programming was an amazing experience, since FP works in exactly the same way I think. I'm not knocking OOP. I think it is great. It just doesn't fit as well with the way I puzzle through problems. Good thing we have options, I suppose.