Я программист на Си++, пытаюсь выучить Common Lisp. Я посмотрел несколько книг, таких как Land of Lisp и прочитал множество онлайн-статей о различных достоинствах Lisp. Однако, мне нужен совет.
Почти всё, что я прочитал о Common Lisp, связано с тем, как он удивительен и как удивительно быстро с ним можно справиться, и как он удивительно быстро решил многие проблемы с современными языками программирования 30 лет назад. Также, насколько удивительны макросы, и как каждая парадигма программирования (OO, функциональная, основанная на актерах, и т.д.) может быть использована в Lisp, и как списки являются конечной структурой данных. В основном, Lisp рассматривается как исследовательский язык и говорит о том, насколько он отличается от других и революционен.
И все это, вероятно, правда, но проблема в том, что я не видел много вещей, как делать практические вещи, такие как читать файл, разбивать его на слова и делать некоторую обработку на нем. Меня интересует не изучение Common Lisp ради изучения Common Lisp, а ради того, чтобы то, что я делал на С++, делалось быстрее и с меньшим количеством ошибок.
Итак, мой вопрос - какой лучший ресурс (будь то сайт, книга, что угодно), который посвящен обучению использованию Common Lisp для выполнения общих задач программирования , таких как
А также на менее непосредственном практическом примере, как реализовать общие структуры данных в lisp, такие как куча, стек, дерево двоичного поиска и т.д. Однако это может быть просто правильное использование операций со списком в Lisp, таких как car
и cdr
. Не знаю.
Я очень сомневаюсь, что все это (за маловероятным исключением последних двух в списке) невозможно с помощью Lisp, иначе людям бы это не понравилось. И вышеупомянутые вещи, которые я прочитал, упоминают о множестве реального программного обеспечения, написанного на Lisp (интернет-магазин Yahoo! приходит на ум).
Однако, имея программирование на (the?) императивном языке раньше, я с нетерпением жду, когда же я смогу использовать те новые знания, которые я получаю для написания реальных приложений. Так какой же самый быстрый способ научиться писать практические программы на Лисп?
Кстати, я видел Питера Зайбеля Practical Common Lisp, но, судя по ТОС, он касается только некоторых вещей, которые я хотел бы научиться делать на Лисп.
Еще один вопрос, если позволите (извините, если это объединение двух вопросов в один), где я могу найти ссылку на функции Лисп и все такое?
И мне действительно хочется понравиться Лисп.