2011-01-03 14 views
11

Duplicar posible:
How many primitives does it take to build a LISP machine? Ten, seven or five?¿El LISP más mínimo?

tengo curiosidad. ¿Cuál es el LISP más mínimo, sobre el cual se podrían construir todas las características adicionales? Ignore la eficiencia: la pregunta proviene simplemente de un lugar de elegancia.

Si se despertó en un planeta alienígena y se le indicó que construyera el LISP más mínimo que luego podría utilizar para implementar cualquier característica que le gustara, ¿qué incluiría?

Editar: Aclaración. Mi intención aquí no es comenzar un debate, sino que estoy considerando implementar un LISP mínimo y quiero comprender cuán mínimo puedo ir mientras sigo permitiendo que el lenguaje que implemente sea Turing completo, etc. Si esto resulta ser controvertido, Estoy seguro de que aprenderé lo que quería aprender al observar la controversia. :). ¡Gracias!

+0

¿Cómo es esto subjetivo? Puede ser un duplicado (creo que una vez vi una pregunta similar, iré a buscar ahora). – delnan

+1

Lo encontré: [¿Cuántas primitivas se necesitan para construir una máquina LISP? ¿Diez, siete o cinco?] (Http://stackoverflow.com/questions/3482389/how-many-primitives-does-it-take-to-build-a-lisp-machine-ten-seven-or-five) (También tiene un enlace a otra pregunta que toca este tema también). – delnan

+0

¿Desea que se complete la cantidad mínima de operaciones para el idioma o que pueda definir todas las funciones de idioma que se encuentran, p. en el ceceo común? – sepp2k

Respuesta

4

Peter Norvig implementó un intérprete LISP en 90 líneas de Python, y su artículo posterior discute en detalle lo que está preguntando. Bien vale la pena leer, en mi humilde opinión.

http://norvig.com/lispy.html

Tengo la sensación de que su "secuenciación" forma especial podría eliminarse si sólo las llamadas de función podría tener un número arbitrario de parámetros.

(defun last (lst) 
    (if (cdr lst) 
     (last (cdr lst)) 
     (car lst))) 

(defun begin (:rest y) (last y)) 

Pero esto complicaría la aplicación de la función.

Cuestiones relacionadas