On Friday, August 2, 2019 10:13:04 AM MDT bachmeier via Digitalmars-d-learn wrote: > On Thursday, 1 August 2019 at 22:36:06 UTC, Russel Winder wrote: > > On Thu, 2019-08-01 at 14:49 +0000, bachmeier via > > Digitalmars-d-learn wrote: […] > > > >> There's nothing wrong with Haskell if you want to take a deep > >> dive into pure functional programming. I personally find > >> Haskell to be more of a religion than a programming language. > >> You can learn the same perspective from functional-first > >> languages like Clojure, Scala, Ocaml, and F#. > > > > […] > > > > Whilst I agree that most "this is the one true programming > > language" people are quasi-religious, programming languages are > > not: Haskell is a just a lazy, pure functional programming > > language, some adherents show quasi-religious fervour, just as > > some adherents of C++, Java, C, Go, Rust, D, etc. do. > > > > I am not sure about F# (I do not know anything of it), but > > Clojure, Scala, and OCaml are very different from Haskell for > > various reasons, cf. lazy vs. eager, pure vs. impure. Haskell > > is a programming language worth learning for all > > programmers,along with Lisp, Prolog, and Erlang. > > > > I'll bet (but I have no experimental data, just a hypothesis) > > that any D programmer that knows Haskell writes better D than a > > D programmer who doesn't know Haskell. > > This is getting somewhat off the topic of this thread, so all > I'll say is that I agree with the recommendation to learn > Haskell, but I don't think a beginner would get enough exposure > to various approaches to programming. I did not personally see > large benefits from Haskell, but perhaps I should have stuck with > it longer.
Using Haskell or other similar functional languages can be extremely beneficial towards improving how good you are at recursion, and it can make you much better at functional programming paradigms, because you really don't have much choice when using a language like Haskell. For a couple of years, Haskell was my go-to language for all of my side projects, and I got much better at the functional side of things (e.g. when I first used D templates, I had no problem with their functional nature to the point that I didn't realize that they were functional in nature until I read an article that compared Haskell to C++ templates). That being said, I'd _hate_ to use Haskell for anything serious or for any large projects. It's just too restrictive. My feeling is that functional languages are likely to be a very poor place for most folks to start learning, much as I think that they're great for someone to learn and work with at some point. I have heard of beginning programming classes using functional languages and having it go very well, but it seems hard to believe to me. Imperative programming can already be a lot for beginners, but most people really don't think even vaguely in a functional manner. Even simple recursion tends to be a bit of a mind-bender for people at first. - Jonathan M Davis