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

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

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

Здравствуйте! Вот такой парой функций считываю строки из файла в список:
Листинг программы
  1. (defun add-el (lst el)
  2. (cond ((null lst) (list el))
  3. (t (cons (car lst) (add-el (cdr lst) el)))))
  4. (defun read-file (filename)
  5. (setq in-list '())
  6. (with-open-file (stream filename)
  7. (when stream
  8. (loop for line = (read-line stream nil)
  9. while line do (setq in-list (add-el in-list line))))))
Она возвращает список вида:
Листинг программы
  1. ("(x (y L) L) (z L) L^M" "x (y L) L^M" "x L y^M")
Как избавиться в каждом элементе списка от литеры ^M ? P.S. не пинайте сильно, функцию add-el скоммуниздил с этого форума... ))) З.Ы.Ы. не получается сделать в редакторе форума нормальные отступы в теле функций.... (

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

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

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

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

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


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

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

12   голосов , оценка 4.333 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы