Входного
Видимо вы пытаетесь накормить текстовый файл DOS с CRLF-разделителями строк лисповской реализации, предполагающей линия будет LF-разделители в моде Unix. Обратите внимание, что read-line
разделяет строки новой строки, поэтому в нашем случае LF разделяются, но CR обрабатываются как обычные символы и, таким образом, остаются в строке.
Новые линии являются специфичными для платформы и, следовательно, зависят от реализации в Lisp. Более того, кажется, что ни asdf, ни asdf-encodings не затрагивают эту проблему. Как я вижу, у вас есть следующие варианты:
Выходные
Как уже отмечалось, PRINT фактически читаемый человеком сериализации. На странице CLHS для WRITE есть куча функций печати, и, конечно же, FORMAT. Для вывода строки вы также можете использовать WRITE-STRING (без добавления новой строки) или WRITE-LINE (с новой строкой).
UPD
На самом деле UIOP (! Не Asdf) экспортирует функцию полезности UIOP: STRIPLN, которая выполняет следующие действия, в соответствии с его строку документации:
«Strip строка X из любого заканчивающегося CR, LF или CRLF. Возвратите два значения, лишенную строку и окончание, которое было лишено, или исходное значение и NIL, если не было снятия. Поскольку наш STRCAT принимает NIL как пустой указатель строки, два результата, переданные в STRCAT всегда восстанавливайте оригинальную строку "
Попробуйте использовать формат вместо печати – turingcomplete
Пожалуйста, отправьте код, а не фотографии. – uselpa