119 votes

Quelle est la différence entre Lisp-1 et Lisp-2?

J'ai essayé de comprendre la différence entre Lisp-1 et Lisp-2 et comment cela se rapporte à Clojure, mais je ne comprends toujours pas correctement. Quelqu'un peut-il m'éclairer?

94voto

Peter McLain Points 443

Vous pouvez lire ce livre par Richard Gabriel. C'est un résumé des questions que la communauté Lisp discutaient dans Lisp1 vs Lisp2. C'est un peu dense et lent dans les premières sections, mais il est beaucoup plus facile à lire par le temps vous avez passé à la section 5.

Fondamentalement, Lisp1 a un seul et même environnement que les cartes de symboles, de valeurs, et ces valeurs peuvent être "régulière" ou de fonctions. Lisp2 a (au moins) deux espaces de noms (les symboles ont une fente pour une valeur de la fonction et un pour une valeur régulièrement). Ainsi, dans Lisp2, vous pouvez avoir une fonction nommée foo, et une valeur nommée foo, alors que dans Lisp1, le nom foo ne peuvent se référer qu'à une seule valeur (fonction ou autre).

Il existe plusieurs inconvénients et les différences de goût entre les deux, mais à lire l'article pour les détails. Christian Queinnec du livre, "Lisp en Petits Morceaux" dispose également de discussion des différences tissés à travers le texte.

79voto

pauldoo Points 5020

Selon wikipedia:

Si un namespace pour les fonctions est un avantage est une source de discorde dans la communauté Lisp. Il est généralement désigné comme le Lisp-1 vs Lisp-2 débat. Lisp-1 désigne le Schéma du modèle et le Lisp-2 renvoie pour Common Lisp.

Il s'agit essentiellement de savoir si les variables et les fonctions peuvent avoir le même nom sans soucis. Clojure est un Lisp-1 ce qui signifie qu'il ne permet pas le même nom pour une fonction et une variable simultanément.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X