計算機プログラムの構造と解釈[第2版]
(翔泳社)
ハロルド エイブルソン (著) ジュリー サスマン (著)
ジェラルド・ジェイ サスマン (著)
Harold Abelson (原著) Julie Sussman (原著)
Gerald Jay Sussman (原著) 和田 英一 (翻訳)
開発環境
- OS X Mavericks - Apple(OS)
- Emacs (CUI)、BBEdit - Bare Bones Software, Inc. (GUI) (Text Editor)
- Scheme (プログラミング言語)
- Gauche (処理系)
計算機プログラムの構造と解釈[第2版](ハロルド エイブルソン (著)、ジュリー サスマン (著)、ジェラルド・ジェイ サスマン (著)、Harold Abelson (原著)、Julie Sussman (原著)、Gerald Jay Sussman (原著)、和田 英一 (翻訳)、翔泳社、原書: Structure and Interpretation of Computer Programs (MIT Electrical Engineering and Computer Science)(SICP))の4(超言語的抽象)、4.1(超循環評価器)、4.1.7(構文解析を実行から分離する)、問題 4.23.を解いてみる。
その他参考書籍
- Instructor's Manual to Accompany Structure & Interpretation of Computer Programs
- プログラミングGauche (Kahuaプロジェクト (著), 川合 史朗 (監修), オライリージャパン)
問題 4.23.
並びが一つの式しか持たない通常の場合。
並び (exp)
本文の版。
(analyze-sequence (exp)) ;; procs: ((analyze exp)) (loop (analyze exp) ()) (analyze exp)
Alyssa P. Hackerの版。
(analyze-sequence (exp)) ;; procs: ((analyze exp)) (lambda (env) (execute-sequence ((analyze exp)) env))
二つの式を持つ並びについて。
並び (exp1 exp2)
本文の版。
(analyze-sequence (exp1 exp2)) ;; procs ((analyze exp1) (analyze exp2)) (loop (analyze exp1) ((analyze exp2))) (loop (sequentially (analyze exp1) (analyze exp2)) ()) (sequentially (analyze exp1) (analyze exp2)) (lambda (env) ((analyze exp1) env) ((analyze exp2) env))
Alyssa P. Hackerの版。
(analyze-sequence (exp1 exp2)) ;; procs: ((analyze exp1) (analyze exp2)) (lambda (env) (execute-sequence ((analyze exp1) (analyze exp2)) env))
以上より、Alyssa P. Hackerの版は、並びの個々の式は解析されるが、並び自身は解析されない。
0 コメント:
コメントを投稿