Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > LISP > [Common Lisp] Две проблемы


Автор: Dude03 24.5.2007, 17:24
Подумал тут написать на lisp некоторые алгоритмы обработки графов. Вот, решил граф загружать из файла и представлять его в файле в виде lisp-списка(ну конечно парсер не так уж сложно написать, но это другой разговор). Пишу на Common Lisp.
1) Список состоит из s-выражений. Как мне загрузить из файла и сохранить в файл list в памяти? Можно ли после этого нормально(вручную редактировать этот файл), т.е. будет ли там в файле именно лисповский код списка или там будет сериализованный список в "бинарном" виде?
2)  Если элементами списка являются не только s-выражения, но и структуры?

Автор: adejneka 24.5.2007, 20:38
1) Используйте WRITE с ключами :READABLY и, возможно, :CIRCLE для записи и READ для чтения текстового представления списков. См. http://www.lispworks.com/documentation/HyperSpec/Body/f_wr_pr.htm, http://www.lispworks.com/documentation/HyperSpec/Body/f_rd_rd.htm
2) С некоторыми ограничениями, да. В крайнем случае можно задать свой метод для обобщённой функции PRINT-OBJECT (например, с использованием макроса чтения ``#.''). См. http://www.lispworks.com/documentation/HyperSpec/Body/22_acl.htm, http://www.lispworks.com/documentation/HyperSpec/Body/f_pr_obj.htm

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)