ในปีแรกของฉันที่มหาวิทยาลัยหลักสูตรการเขียนโปรแกรมแรกที่ฉันใช้คือใช้ SICP (นั่นคือ 1988) อย่างไรก็ตามฉันมีปัญหาที่คล้ายกันเช่นคุณ: สำหรับคอมพิวเตอร์ของฉัน (จริง ๆ แล้วคือ Commodore Amiga) ไม่มีการใช้ Scheme ในขณะนั้นมีเพียงภาษา Lisp ที่แตกต่างกันเท่านั้น (ฉันจำชื่อไม่ได้)
อย่างไรก็ตามด้วยความยืดหยุ่นของ Lisp มันค่อนข้างง่ายที่จะ "เลียนแบบ" ไวยากรณ์ของ Scheme เพียงแค่เพิ่มมาโครและฟังก์ชั่น lisp ที่ขาดหายไปในสคริปต์บางตัว นี่เป็นจริงเพียงพอที่จะใช้แบบฝึกหัดทั้งหมดจากบทที่ 1 ถึง 3 ที่จำเป็นในระหว่างการเรียน (โปรดทราบว่า SICP ไม่จำเป็นต้องใช้ Scheme แบบเต็มจริง ๆ
ดังนั้นตั้งแต่ Clojure เป็น AFAIK ภาษา Lisp สมัยใหม่ฉันคิดว่าคุณสามารถทำสิ่งที่คล้ายกันซึ่งให้ทางเลือกฟรีอย่างเต็มที่ในการเขียนสิ่งต่าง ๆ ทั้งใน Scheme หรือ Clojure หรือทั้งสองอย่างผสมกัน
แน่นอนว่าการแก้แบบฝึกหัดใน Clojure นั้นจะเป็นไปได้เช่นกันทั้งสองภาษามีความคล้ายคลึงกันมาก ที่สำคัญกว่านั้น SICP ไม่ได้เกี่ยวกับไวยากรณ์ภาษาการเขียนโปรแกรมแต่เป็นเรื่องเกี่ยวกับการใช้ abstractions ที่ถูกต้องในการเขียนโปรแกรม (ตัวอย่างเช่นด้วยฟังก์ชั่นข้อมูลและวัตถุ) ดังนั้นอย่าคิดว่ามีปัญหาเกี่ยวกับไวยากรณ์มากเกินไปสิ่งเหล่านี้ไม่ได้อยู่ในโฟกัสของหนังสือเล่มนี้และอาจเป็นปัญหาเล็กน้อย
recur
จัดการการเรียกซ้ำแบบหางเท่านั้นไม่ใช่การเรียกทั่วไป) และ 2. การขาดcall-with-current-continuation
ซึ่งจำเป็นสำหรับบทที่ 4