2010-11-04 10 views
5

¿Qué versión/dialecto/implementación de LISP se pretende ejecutar?¿Qué dialecto de LISP está escrito en 'Paradigmas de programación de inteligencia artificial'?

(Comprendo que el libro está escrito en Common LISP (como se especifica en la introducción) y que es anterior al estándar 1994 CL).


Divida la pregunta en dos para que quede más clara.

+0

Se llama "Paradigmas de programación de IA", no "Principios ..." – Xach

+3

¿Puede mostrar la función que está leyendo? – Ken

+0

Desde la primera línea del enlace que proporcionó: ';;;; - * - Modo: Lisp; Sintaxis: Common-Lisp - * - ' – harto

Respuesta

3

Si nos fijamos en auxfns.lisp encontrado en web page for the book de Peter Norvig, hay un poco

(eval-when (eval compile load) 
    ;; Make it ok to place a function definition on a built-in LISP symbol. 
    #+(or Allegro EXCL) 
    (dolist (pkg '(excl common-lisp common-lisp-user)) 
    (setf (excl:package-definition-lock (find-package pkg)) nil)) 

    ;; Don't warn if a function is defined in multiple files -- 
    ;; this happens often since we refine several programs. 
    #+Lispworks 
    (setq *PACKAGES-FOR-WARN-ON-REDEFINITION* nil) 

    #+LCL 
    (compiler-options :warnings nil) 
) 

lo que sugiere su supone que funciona en Franz Allegro, lúcido Lisp, o LispWorks

7

Esos no son funciones. Esos son enlaces variables. No todo lo que aparece como lo primero en una forma es el nombre de una función; el formulario adjunto puede introducir un significado especial a las formas internas. Ese es el caso con, por ejemplo, let:

(let ((action 42) 
     (result 51)) 
    (+ action result)) 

Ni action ni result nombres una función en ese ejemplo.

+2

Esas * son * enlaces. Son introducidos por la lista lambda. – Xach

3

El dialecto de Lisp se llama 'Common Lisp'. El libro está escrito en Common Lisp relativamente portátil.

Cuestiones relacionadas