1. LISP 2. Haskell 3. Erlang 4. Something else
No wrong answer, just a question I always like to hear answers to.
1. LISP 2. Haskell 3. Erlang 4. Something else
No wrong answer, just a question I always like to hear answers to.
But with just that first Standard ML course, you can already branch out to more popular languages such as Scala [1], which gives you the closest thing I've seen to "Standard ML on the JVM". But Standard ML (or Ocaml, which is very close) might even be your preferred language for prototyping [2], or compiler writing [3].
P.S.: To make Coursera tolerable, I usually pull the entire course with this nice little script [4]. Works great with ranger and mplayer!
[0] https://www.coursera.org/learn/programming-languages
[1] https://www.coursera.org/specializations/scala
[2] https://sanderspies.github.io/slides/dawn-of-reason.pdf
Others have mentioned Elixir, which would also be an interesting option to explore. The main difference being that with Elixir you're leveraging Erlang and BEAM (which gives you a fantastic platform for actors and lightweight threads), versus Java and the JVM in the case of Scala (which gives you access to all of Java).
That's a little meta, don't you think?
Your problem is not what language to learn, your problem is that you think that learning is "wasting time."
> a functional language in 2019
Lisp is not a functional language, so your question does not even make sense.
If you actually want to help your clients, instead of selling them on bogus, inappropriate solutions (which, with your attitude and lack of knowledge, I guarantee is what you are doing to your clients today), you need to start actually learning the fundamentals of your field. If you think that learning is "wasting time," then you are not learning, you are, indeed, only "wasting time."
I am also a consultant, have worked with all the languages you listed, and I say the above to help you, and other people who consult, and me. Consulting is all about having a very solid knowledge base, continuous learning, and professionalism (which, BTW, includes basic writing skills, like capitalization). Attitudes like yours are why consulting engagements fail, and why consultants get a bad reputation. That only makes it harder for all of us to get work.
Clojure as the most useful functional programming language.
Ditch both if/when you run into their limitations. You’ll then discover various degrees of FP in most languages.
F# is a great language but I've found that it's usable when you can 1) convince C# people it's not that scary, and 2) convince them that you're not An F# Person.
I'll probably catch some flack for this (from both sides): You can (and should) use Ocaml as a Lisp where you lose the easy macros but gain strict typing. It's brilliant. The only downside is emacs; it's the only sensible IDE.
Haskell (and friends) are fantastic, but in my experience you have to be reasonably smart and work full-time with it, since every medium sized project gets turned into its own DSL (more so than with other languages). Maybe it's not ideal for consulting.
Amazing ML-derived language with all the benefits of the .NET ecosystem. Highly suggest everyone dip their toe in.