На моєму першому курсі в університеті перший курс програмування, який я взяв, використовував SICP (це був 1988 рік). Однак у мене була подібна проблема, як у вас: для мого власного комп’ютера (насправді Commodore Amiga) у той час не було доступно впровадження схеми, лише інший діалект Ліспа (я не пам’ятаю його назви).
Однак, зважаючи на гнучкість Lisp, симулювати синтаксис схеми досить просто, додавши відсутні кілька макросів і функцій lisp у кількох сценаріях. Цього насправді було достатньо для виконання всіх вправ з розділу 1 до 3, необхідних під час курсу (зауважте, що SICP насправді не потребує повного стека схем, невеликий підмножина - все, що вам потрібно).
Отже, оскільки Clojure - це AFAIK - це сучасний діалект Lisp, я думаю, ви могли б зробити щось подібне, що дає вам повний вільний вибір для написання речей або в Scheme, або Clojure, або в суміш обох.
Звичайно, вирішити вправи безпосередньо в Clojure також буде можливо, обидві мови дуже схожі. Що важливіше, SICP - це не синтаксис мови програмування , а правильне використання абстракцій у програмуванні (наприклад, з функціями, даними та об'єктами). Тому не думайте надто багато можливих проблем із синтаксисом, вони не в центрі уваги цієї книги і, швидше за все, не викликають особливих проблем.
recur
лише обробка хвостової рекурсії , а не загальні дзвінки) та 2. відсутністьcall-with-current-continuation
яких потрібна для глави 4.