J'essaie de me familiariser avec différents types de langues pour comprendre les domaines dans lesquels chacun d'eux est extrêmement bon. Jusqu'à présent, j'ai essayé C - un langage procédural, C ++ et java - des langages orientés objet de type statique et groovy - un langage orienté objet typé dynamique.
Chaque langage de programmation a probablement été lancé pour répondre à un besoin. Et je suppose que chaque langue est extrêmement bonne dans au moins une chose à cause de laquelle elle devient une norme dans un domaine ou un domaine spécifique. Comme C, C ++ est devenu standard dans des domaines comme le développement de navigateur ou de jeux. Python dans le monde Linux pour sa capacité de script facile, Java dans le monde de l'entreprise, etc.
Maintenant, je suis intéressé à apprendre un langage de programmation fonctionnel comme Clojure ou Lisp. Alors, où les langages de programmation fonctionnels sont-ils utilisés dans des scénarios du monde réel? Je ne pense pas que l'on utiliserait Clojure ou Lisp pour développer des applications ou des interfaces utilisateur. Alors, sur quel type de projets dois-je me lancer après avoir suivi les tutoriels de base et les ressources d'apprentissage pour obtenir une brève compréhension de la mise en œuvre de la programmation fonctionnelle? Et recommandez-vous fortement une langue en particulier, comme disons clojure?
la source
Réponses:
Vous dites la programmation fonctionnelle du monde réel, je pense que Erlang.
http://www.erlang.org/
la source
Il existe une excellente série de conférences sur la programmation fonctionnelle par l'Université de Stanford, que vous pouvez consulter sur YouTube.
Je vous conseille de vous pencher sur Scheme plutôt que LISP. Le schéma est une version modifiée de Lisp avec d'autres améliorations. Le programme est principalement utilisé à des fins académiques et de formation. C'est un excellent langage si vous aimez faire de la recherche en science informatique thoracique.
Applications :
Google App Inventor pour Android utilise Scheme, où Kawa est utilisé pour compiler le code Scheme en octets pour la machine virtuelle Java exécutée sur les appareils Android. Elk Scheme est utilisé par Synopsys comme langage de script pour ses outils de technologie CAD (TCAD).
FYI: Utilisation du schéma
la source
Bryan O'Sullivan, fondateur de mailrank.com (qui a été acquis par Facebook) a construit tout le côté serveur de ce logiciel à Haskell. Il en a fait la présentation à Strange Loop 2011, des vidéos et des diapositives sont disponibles en ligne.
Le même gars a écrit un livre intitulé Real World Haskell . Plusieurs personnes ont mentionné des didacticiels de programmation. Celui-ci peut être tout à fait approprié à vos intérêts (j'aime aussi la suggestion Erlang).
la source
Je sais par des amis de la finance que la société de trading quantitatif Jane Street utilise OCaml pour mettre en œuvre ses stratégies de trading. Ils ont une page où ils expliquent pourquoi, ainsi que des liens vers des discussions sur le sujet.
la source
Voici une liste des réussites de Common Lisp:
http://wiki.alu.org/Industry%20Application
http://www.franz.com/success/
http://www.lispworks.com/success-stories/index.html
Bien que Common Lisp ne soit que partiellement fonctionnel (il prend également en charge la POO et les procédures, ainsi que tout ce que vous souhaitez implémenter vous-même ou avec une bibliothèque), c'est un langage très pragmatique et extrêmement puissant entre les mains d'un programmeur compétent. Je l'utilise en fait pour écrire des applications Web avec l'excellent cadre RESTAS .
Et le projet commercial python sur lequel je travaille en ce moment sera éventuellement complété par des services écrits en lisp (RESTAS comme son nom l'indique est excellent pour les services RESTful).
la source
Je suggère de plonger dans les compilateurs (pour les langages à usage général ou les DSL) - c'est là que la programmation fonctionnelle est à son meilleur. Il y aura beaucoup de choses intéressantes et utiles à explorer, des ADT et de la correspondance de motifs d'un côté d'un spectre aux macros Lisp de l'autre côté.
la source
Vous voudrez peut-être jeter un œil à Hume .
Depuis la page The Hume Programming Language :
De la page wikipedia Hume :
la source