I recommend Haskell . Please check out this other question: Getting started with Haskell .
Reasons in favor of Haskell:
- From a personal point of view, first of all: I spent a significant amount of my early years of programming, thinking about developing my own programming language. (For example, I highly recommend the textbook Pragmatics of Programming Language .) When I first came across Haskell, I realized that he included many of the ideas that I had, plus many more, and all this was much better than I could do myself.
- This is a very clean implementation of functional ideals: lazy (non-strict) and (polymorphic) statically typed. No side effects!
- A system of its type can change your perception of the types of systems. (The Hindley-Milner type inference is amazing.)
- His alternative view of object-oriented programming and polymorphism is great.
Lisp is also a good choice. Reasons for Lisp:
- Historically, the first functional programming language (or the first huge).
- The worldview "everything is a list" is very minimalistic, simple and beautiful.
If you choose the Lisp option, I recommend Scheme .
I did not use OCaml or Ruby, but some of my friends swear by them, although it can be argued how functional they are. On the other hand, their "multi-paradigm" character makes them very convenient in practice.
In conclusion, I suggest you choose the language that follows Alan Perlis’s advice: "A language that does not affect how you think about programming is not worth knowing." Lisp, and Haskell changed my world. I hope that no matter what language you choose, it will change your world.
A. Rex Jan 11 '09 at 3:31 2009-01-11 03:31
source share