Почикать символы возврата каретки и перевода строки - Lisp

Узнай цену своей работы

Формулировка задачи:

Здравствуйте! Вот такой парой функций считываю строки из файла в список:
(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")
Как избавиться в каждом элементе списка от литеры ^M ? P.S. не пинайте сильно, функцию add-el скоммуниздил с этого форума... ))) З.Ы.Ы. не получается сделать в редакторе форума нормальные отступы в теле функций.... (

Решение задачи: «Почикать символы возврата каретки и перевода строки»

textual
Листинг программы
(loop
   for line = (read-line stream nil)
   while line
   collect line)

Объяснение кода листинга программы

В данном коде используется цикл loop, который читает каждую строку из потока данных (stream) и добавляет её в коллекцию (возможно, список). Переменная line является временной переменной, используемой в цикле. Её значение меняется на каждой итерации цикла, пока он не завершится. Функция read-line используется для чтения строки из потока данных, а nil используется как разделитель строк. Код продолжает читать строки до тех пор, пока не будет достигнут конец потока данных.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 4.333 из 5
Похожие ответы