Qu'est-ce qui définit un lisp ? Julia peut-elle être qualifiée de LISP ?
UNE zézayer , de wikipédia :
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.
Aussi, de wikipédia :
Une fois Lisp implémenté, les programmeurs ont rapidement choisi d'utiliser des expressions S, et les expressions M ont été abandonnées.
Et encore:
Lisp a été le premier langage où la structure du code du programme est représentée fidèlement et directement dans une structure de données standard, une qualité beaucoup plus tard appelée « homoiconicité ».
Aussi:
LISP est l'acronyme de LIST Processing.
Le code Julia peut être représenté en utilisant:()
ouExpr(...)
notation. Il peut être traversé et manipulé car il s'agit d'une structure de données composée de symboles et d'autres littéraux, Julia est homoiconique (et le code est analysé avec un lisp). Cependant, la syntaxe Julia n'utilise pas seulement notation de préfixe, il a des M-Expressions.
Certaines personnes considèrent Syntaxe S-Expression uniquement une exigence pour qu'un langage lisp soit appelé tel. L'avantage de S-Exprs est que le code est plus facile à analyser et à manipuler par d'autres personnes, c'est un avantage indirect, c'est un terrain d'entente plus simple qui à son tour donne la possibilité d'écrire plus édition de code puissantecode. Julia a des macros, mais dans un certain sens, elles sont moins puissantes que les macros lisp car il est plus difficile de manipuler M-Exprs.
On s'en fout?
Meh. :)