Este es el código para implementar el comando 'cat' con Lisp, como se explica en el libro ANSI Common Lisp, página 122.¿Por qué la línea de lectura se ejecuta dos veces para leer desde un archivo en Lisp?
(defun pseudo-cat (file) (with-open-file (str file :direction :input) (do ((line (read-line str nil 'eof) (read-line str nil 'eof))) ((eql line 'eof)) (format t "~A~%" line))))
¿Por qué es la función de línea de lectura carrera dos veces? Traté de ejecutarlo con una sola línea de lectura, pero el Lisp no pudo terminar el código.
múltiples concats y el uso de formato para crear nuevas cadenas es realmente un desperdicio. No hagas eso. –
Ese es un enfoque equivocado, ya que producirá resultados incorrectos. P.ej. si pasa el nombre de named pipe en linux o windows, probablemente no estará listo inmediatamente para la entrada, por lo tanto, listen devolverá NIL y la función volverá sin copiar nada. –