Articles of lisp

Ejecutable Lisp

Acabo de empezar a aprender Lisp y no puedo entender cómo comstackr y vincular el código de lisp a un ejecutable. Estoy usando clisp y clisp -c produce dos archivos: .fas .lib ¿Qué debo hacer para obtener un ejecutable?

¿Cuándo se debe usar la syntax de la función Emacs # ‘?

Básicamente, ¿cuándo debería usar el procedimiento de function Emacs Lisp? No he encontrado ningún ejemplo en el que haya una diferencia en el comportamiento si pasa funciones como argumentos ‘like-this o #’like-this . De hecho, si evalúo (eq ‘goto-char #’goto-char) devuelve t . El código de Emacs Lisp que he encontrado rara vez usa la […]

¿Cómo se implementan las secuencias perezosas en Clojure?

Me gusta Clojure. Una cosa que me molesta sobre el lenguaje es que no sé cómo se implementan las secuencias perezosas o cómo funcionan. Sé que las secuencias perezosas solo evalúan los elementos en la secuencia que se solicitan. ¿Como hace esto? ¿Qué hace que las secuencias perezosas sean tan eficientes que no consumn mucha […]

¿Por qué se usa Lisp para AI?

He estado aprendiendo Lisp para expandir mis horizontes porque he escuchado que se usa en la progtwigción de IA. Después de explorar un poco, todavía tengo que encontrar ejemplos de IA o cualquier cosa en el lenguaje que lo haga más inclinado a ello. ¿Se utilizó Lisp en el pasado porque estaba disponible, o hay […]

Error común de ceceo: “debería ser una expresión lambda”

Acabo de empezar a aprender Common Lisp hace unos días, y estoy tratando de crear una función que inserte un número en un árbol. Me aparece un error, *** – SYSTEM ::% EXPAND-FORM: (CONS NIL LST) debe ser una expresión lambda De buscar en Google, parece que esto sucede cuando tienes demasiados conjuntos de paréntesis, […]

El rango recursivo en Lisp agrega un punto?

(define .. (lambda (start stop) (cond ((> (add1 start) stop) (quote ())) ((eq? (add1 start) stop) (sub1 stop)) (else (cons start (.. (add1 start) stop)))))) Definí una función de rango simple. La intención es para (.. 1 5) –> (1 2 3 4) En cambio, se agrega un período extraño a mi tupla y no […]

¿Por qué una variable local elisp mantiene su valor en este caso?

¿Podría alguien explicarme qué está pasando en este fragmento de código muy simple? (defun test-a () (let ((x ‘(nil))) (setcar x (cons 1 (car x))) x)) Tras una llamada (test-a) por primera vez, obtengo el resultado esperado: ((1)) . Pero para mi sorpresa, llamándolo una vez más, obtengo ((1 1)) , ((1 1 1)) y […]

¿Cuándo usar ‘(o citar) en Lisp?

Después de pasar las partes principales de un libro introductorio de Lisp, aún no podía entender qué hace la función especial del operador (quote) (o equivalente), pero esto ha sido todo el código Lisp que he visto. ¿Qué hace?

¿Cuál es la diferencia entre Lisp-1 y Lisp-2?

Intenté entender la diferencia entre Lisp-1 y Lisp-2 y cómo esto se relaciona con Clojure, pero todavía no entiendo bien. ¿Alguien puede iluminarme?

Persistencia inesperada de datos

Tengo una lista de siete enteros, inicialmente todos ceros, llamémoslos “datos”. Periódicamente durante el curso de ejecución de mi progtwig quiero incrementar el valor de uno de esos enteros por uno. Al final del progtwig, imprimo datos. Todo está bien, excepto que en cada ejecución sucesiva del progtwig, todos los valores de los datos de […]