human
Veuillez expliquer ce qu'est "Lisp (langage de programmation)"
gpt
Lisp (historiquement LISP) est une famille de langages de programmation avec une longue histoire et une notation de préfixe distinctive entièrement entre parenthèses.
Spécifié à l'origine en 1960, Lisp est le deuxième langage de programmation de haut niveau le plus ancien encore couramment utilisé, après Fortran. Lisp a changé depuis ses débuts et de nombreux dialectes ont existé au cours de son histoire. Aujourd'hui, les dialectes Lisp à usage général les plus connus sont Common Lisp, Scheme, Racket et Clojure.
Lisp a été créé à l'origine comme une notation mathématique pratique pour les programmes informatiques, influencée par (mais non dérivée à l'origine) de la notation du calcul lambda d'Alonzo Church. Il est rapidement devenu un langage de programmation privilégié pour la recherche sur l'intelligence artificielle (IA).[10] En tant que l'un des premiers langages de programmation, Lisp a été le pionnier de nombreuses idées en informatique, notamment les structures de données arborescentes, la gestion automatique du stockage, le typage dynamique, les conditions, les fonctions d'ordre supérieur, la récursivité, le compilateur auto-hébergé [11] et le read– boucle eval-print.[12]
Le nom LISP dérive de "LISt Processor".[13] Les listes chaînées sont l'une des principales structures de données de Lisp, et le code source de Lisp est composé de listes. Ainsi, les programmes Lisp peuvent manipuler le code source comme une structure de données, donnant naissance aux systèmes de macros qui permettent aux programmeurs de créer une nouvelle syntaxe ou de nouveaux langages spécifiques à un domaine intégrés dans Lisp.
L'interchangeabilité du code et des données donne à Lisp sa syntaxe immédiatement reconnaissable. Tout le code du programme est écrit sous forme d'expressions s ou de listes entre parenthèses. Un appel de fonction ou une forme syntaxique est écrit sous forme de liste avec le nom de la fonction ou de l'opérateur en premier, suivi des arguments ; par exemple, une fonction f qui prend trois arguments serait appelée comme (f arg1 arg2 arg3).