Common Lisp et Racket sont des langages fonctionnels, par défaut au typage dynamique
Common Lisp est un langage multi-paradigme, pas purement fonctionnel donc, compilé et fortement typé, qui permet du typage graduel, tout en utilisant son excellent REPL (devrait-on dire, image-based development). Mais il ne fait pas autant d'inférences de typage que les langages modernes (Haskell et cie). Pour cela des librairies émergent... (https://github.com/stylewarning/coalton/)
À noter que comme on code avec le REPL à côté, on compile notre code fonction par fonction avec un raccourci clavier... c'est terriblement efficace.
Il existe aussi typed-racket.
compilent vers du code assez efficace
Carrément. Les articles de blog qui montrent que Common Lisp peut être autant ou plus efficace que du C affluent (oui oui, on croule dessous :p ). Car Common Lisp permet de déclarer ses types un peu partout, quand on veut. On peut vraiment partir à la chasse à l'optimisation.
[macros] mais non hygiéniques
Je ne suis pas dans ces débats, donc perso je m'en fiche. Pour se protéger, on utilise le système des gensym pour déclarer une nouvelle variable dans une macro, qui aura donc un nom unique, et voilà.
Un peu plus fonctionnel, en particulier la construction extrêmement flexible loop
le gestionnaire de paquets lui-même, bien que fonctionnel, est considéré bêta depuis très très longtemps.
Oui, Quicklisp, comme d'autres librairies, est marqué "beta software" mais il est pleinement fonctionnel. Il n'est marqué beta que parce la communauté Common Lisp joue le jeu de la stabilité à fond. Un programme stable va durer des décennies. Il n'est pas rare qu'un programme écrit dans les année 90 (soit juste après la standardisation ANSI du language) tourne toujours sans modification. Personnellement j'ai vu des warnings de dépréciation rester pendant 16 ans ! Compare cela aux langages d'aujourd'hui, comme Python...
Par ailleurs, Quicklisp est un peu différent des autres gestionnaires de librairies. Il fonctionne en "releases" mensuelles, un peu comme apt. Il garantit que les librairies d'une même release peuvent s'installer ensemble.
Notez que des alternatives avec un autre modèle émergent: Ultralisp, CLPM...
# Common Lisp: corrections
Posté par dzecniv . En réponse au journal Retour d'expérience sur les langages de programmation. Évalué à 4.
Salut,
Common Lisp est un langage multi-paradigme, pas purement fonctionnel donc, compilé et fortement typé, qui permet du typage graduel, tout en utilisant son excellent REPL (devrait-on dire, image-based development). Mais il ne fait pas autant d'inférences de typage que les langages modernes (Haskell et cie). Pour cela des librairies émergent... (https://github.com/stylewarning/coalton/)
À noter que comme on code avec le REPL à côté, on compile notre code fonction par fonction avec un raccourci clavier... c'est terriblement efficace.
Il existe aussi typed-racket.
Carrément. Les articles de blog qui montrent que Common Lisp peut être autant ou plus efficace que du C affluent (oui oui, on croule dessous :p ). Car Common Lisp permet de déclarer ses types un peu partout, quand on veut. On peut vraiment partir à la chasse à l'optimisation.
Je ne suis pas dans ces débats, donc perso je m'en fiche. Pour se protéger, on utilise le système des
gensympour déclarer une nouvelle variable dans une macro, qui aura donc un nom unique, et voilà.Je suppose que tu voulais dire "un peu plus impératif" ! Exemples de loop, qu'il faut apprendre par l'exemple: https://lispcookbook.github.io/cl-cookbook/iteration.html
Oui, Quicklisp, comme d'autres librairies, est marqué "beta software" mais il est pleinement fonctionnel. Il n'est marqué beta que parce la communauté Common Lisp joue le jeu de la stabilité à fond. Un programme stable va durer des décennies. Il n'est pas rare qu'un programme écrit dans les année 90 (soit juste après la standardisation ANSI du language) tourne toujours sans modification. Personnellement j'ai vu des warnings de dépréciation rester pendant 16 ans ! Compare cela aux langages d'aujourd'hui, comme Python...
Par ailleurs, Quicklisp est un peu différent des autres gestionnaires de librairies. Il fonctionne en "releases" mensuelles, un peu comme apt. Il garantit que les librairies d'une même release peuvent s'installer ensemble.
Notez que des alternatives avec un autre modèle émergent: Ultralisp, CLPM...