Почикать символы возврата каретки и перевода строки - Lisp
Формулировка задачи:
Здравствуйте!
Вот такой парой функций считываю строки из файла в список:
Она возвращает список вида:
Как избавиться в каждом элементе списка от литеры ^M ?
P.S. не пинайте сильно, функцию add-el скоммуниздил с этого форума... )))
З.Ы.Ы. не получается сделать в редакторе форума нормальные отступы в теле функций.... (
(defun add-el (lst el) (cond ((null lst) (list el)) (t (cons (car lst) (add-el (cdr lst) el))))) (defun read-file (filename) (setq in-list '()) (with-open-file (stream filename) (when stream (loop for line = (read-line stream nil) while line do (setq in-list (add-el in-list line))))))
("(x (y L) L) (z L) L^M" "x (y L) L^M" "x L y^M")
Решение задачи: «Почикать символы возврата каретки и перевода строки»
textual
Листинг программы
(loop for line = (read-line stream nil) while line collect line)
Объяснение кода листинга программы
В данном коде используется цикл loop, который читает каждую строку из потока данных (stream) и добавляет её в коллекцию (возможно, список). Переменная line является временной переменной, используемой в цикле. Её значение меняется на каждой итерации цикла, пока он не завершится. Функция read-line используется для чтения строки из потока данных, а nil используется как разделитель строк. Код продолжает читать строки до тех пор, пока не будет достигнут конец потока данных.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д