Два раза проходил — второй от корки до корки, потому что могу. Элементарная книга, впрочем, как и все остальные, если не строить не нужных предубеждений.
Мне так не показалось, наверно слишком объёмные структуры и неэффективные концепты для расширения моего примитивного человеческого сознания. Мне кажется, очень тяжело заставлять себя измышляться настолько ёмкими компонентами и, постфактум, осознавать одну простую мелочь, что многое не запомнить, прежде всего вполне реально забыть — это приводит к ретроградному движению, многое не понять — а значит не редко решаться ступать пробелами (теория ведь); итого получаем не самый эффективный подход к организации «расширяющего сознания на будущее». И наоборот — происходит очень эффективная растрата времени, когда, казалось бы, можно уделять внимание наиболее доступным, высокоуровневым композициям (если так можно выразиться), которые сформируют наиболее понятные и, в свою очередь, достаточные для продолжения Кнута паттерны. Его работы претендуют на хороший и ёмкий справочник, это моё личное мнение. А для того, чтобы в нём ориентироваться — есть ЛОР, к примеру.
Какая может быть конкретная задача, ради который надо читать Кнута?
Если понимаешь о чем речь, все нормально измышляется.
Вот. Не я писал о расширении сознания на будущее.
Теория на то и есть, чтобы один раз прочитать и понять о чем речь. Потом строить практику на ней.
Любая теория это всего лишь метаконтекст на котором строится практика, дураку понятно. Я, конечно, проявляю некое расположение к трудам Кнута, он крут — но с тем и не без проблем. Обычно под шелест его страничек очень хорошо засыпать, такое на редкость удивительное для меня явление, — ну чего поделать, особенности сознания.
Так вот, исходя из этого я пришёл к тому, что ним можно пользоваться ни больше ни меньше, как хорошим объёмным справочником в ряде непростых случаев. Этой мой случай, надеюсь не претендовать на предвзятое отношение.
Но я решил делать все упражнения. Хотя бы потому, что для меня это удовольствие.
Интересно услышать, кто как организует работу над упражнениями? В частности:
Записываете ли вы решения и, если да, то как организованы ваши записи?
Когда и зачем вы используете интерпретатор? (До упр. 1.18, где я сейчас нахожусь, строгой необходимости использовать интерпретатор не возникало.)
Как лучше проверить верность решения, если не с кем его обсудить?
Что можно взять за отношение эквивалентности между реализациями алгоритма? Проще говоря, что делать, если кажется, что возможно несколько вариантов решения?
1) Да, решения записываю в один текстовый файл, разделяя их комментариями. Пользуюсь вот этим интерпретатором: http://repl.it/languages
2) Интерпретатор использую при решении задач из книги. Лично мне интерпретатор помогает лучше понять алгоритмы.
3-4) После того как решу задачу лезу в гугл искать решения других людей и сравниваю со своим.
Я вообще не понимаю, каким макаром сюда приплетают ФП, тем более, в теперешнем его понимании, чистота, бла-бла-бла. С 3-4 главы, там пошла императивщина. К фп SICP не имеет никакого отношения, как и к лиспу.