Почикать символы возврата каретки и перевода строки - 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 используется как разделитель строк. Код продолжает читать строки до тех пор, пока не будет достигнут конец потока данных.