Je recommande Haskell. S'il vous plaît vérifier ce que d'autres DONC, la question: débuter avec Haskell.
Raisons en faveur de Haskell:
- À partir d'un point de vue personnel d'abord: j'ai passé une quantité considérable de mes premières années de programmation réflexion sur la conception de mon propre langage de programmation. (Pour exemple, je vous recommande fortement le manuel de Programmation de la Pragmatique du Langage.) Quand je l'ai rencontré pour la première fois Haskell, j'ai réalisé qu'il intègre de nombreuses idées que j'avais, ainsi que beaucoup d'autres, et dans tous les aspects, beaucoup mieux que je ne l'ai fait moi-même.
- C'est un très pur de la mise en œuvre de la fonctionnelle idéaux: paresseux (non stricte) et (polymorphically) statiquement typé. Pas d'effets secondaires!
- Son type de système peut changer votre point de vue de type de systèmes. (Hindley-Milner, l'inférence de type est incroyable.)
- Son autre point de vue de la programmation orientée objet et le polymorphisme est grande.
Lisp est également un bon choix. Raisons en faveur d'un Lisp variante:
- Historiquement, le premier langage de programmation fonctionnel (ou le premier gros).
- La vision du monde "tout est une liste" est très minimaliste, simple et belle.
Si vous décidez de faire une Lisp variante, je vous recommande de Régime.
Je n'ai pas utilisé OCaml ou Ruby, mais certains de mes amis ne jurent que par eux, si l'on peut argumenter de façon fonctionnelle qu'ils sont. D'autre part, leur "multi-paradigme de la" nature les rend très commode dans la pratique.
Pour conclure, je vous suggère de choisir une langue à la suite d'Alan Perlis du conseil: "Une langue qui n'affecte pas la façon dont vous pensez de la programmation, n'est pas la peine de savoir." Lisp et Haskell fois changé mon monde. J'espère que quelle que soit la langue que vous choisissez, il change votre monde.