問題4.13 – SICP(計算機プログラムの構造と解釈)その185
問題4.13 束縛の除去は環境の最初のフレームだけでよい。 現在のフレーム以外の束縛も削除してしまうと、手続き中などのスコープ内の束縛も削除されてしまう。 束縛の削除はフレーム内で見つかった変数とその値の先頭リストの参照先を変更させて行う。 (define (eval exp env) (cond ((self-evaluating? exp) exp) ; 省略 ((unbind? exp) (…続きを読む
問題4.13 束縛の除去は環境の最初のフレームだけでよい。 現在のフレーム以外の束縛も削除してしまうと、手続き中などのスコープ内の束縛も削除されてしまう。 束縛の削除はフレーム内で見つかった変数とその値の先頭リストの参照先を変更させて行う。 (define (eval exp env) (cond ((self-evaluating? exp) exp) ; 省略 ((unbind? exp) (…続きを読む
Firefox で DOM ノードを XML 文字列にして、Firebug のコンソールにダンプする。 var serializer = new XMLSerializer(); var elem = document.getElementsByTagName(‘H1’)[0]; console.log(serializer.serializeToString(elem)); 実行対象 … &…続きを読む
問題4.12 手続き set-variable-value!、define-variable!、lookup-variable-value を見ると、共通パターンになっている手続き scan を抽象化するとよい。 scan を 変数 var が見つかった場合は見つけた変数のリストを返し、見つからなかったばあいは ‘() を返すようにする。 各手続きにおいて scan の結果に応じて処理を行わせる。…続きを読む
問題4.11 (define (make-frame variables values) (define (make-frame-iter variables values) (if (null? variables) ‘() (cons (cons (car variables) (car values)) (make-frame-iter (cdr variables) (cdr values…続きを読む
XOOPS WordPress モジュール での ping 送信設定方法のメモ。 modules/wordpress/themes/テーマ名/wp-config-custom.php の "PINGサーバの指定" 部分にサーバ名・パス名・ポート番号を追加していく。 // PINGサーバの指定 $GLOBALS[‘my_pingserver’][0][‘server’]=&quo…続きを読む
問題4.9 "[jfriends:00504] SICP 読書会 第17回議事録" の do の実装を参考にして while を実装してみる。 (define (eval exp env) (cond ((self-evaluating? exp) exp) ; 省略 ((while? exp) (eval (while->let exp) env)) ; 省略 (els…続きを読む
問題4.8 名前付き let で書いた Fibonacci 手続きは、 (define (fib n) (let fib-iter ((a 1) (b 0) (count n)) (if (= count 0) b (fib-iter (+ a b) a (- count 1))))) 次の手続きに書き直せる。 (define (fib n) (define (fib-iter a b count…続きを読む
問題4.7 [SICP] 問題4.7 – papamitraの日記 – 個人用SICP勉強グループ を参考にした。 (define (eval exp env) (cond ((self-evaluating? exp) exp) ; 省略 ((let*? exp) (eval (let*->nested-lets exp) env)) ; 省略 (else (err…続きを読む
問題4.6 (define (eval exp env) (cond ((self-evaluating? exp) exp) ; 省略 ((let? exp) (eval (let->combination exp) env)) ; 省略 (else (error "Unknown expression type — EVAL" exp)))) ;;;; let 式 …続きを読む
練習問題(p202) call-with-input-string と call-with-output-string を使って "13.3.2 オブジェクトを文字列に変換する(p176)" の write-to-string と read-from-string を実装する。 (call-with-input-string <文字列> <1引数の手続き>…続きを読む