問題4.15 – SICP(計算機プログラムの構造と解釈)その187
問題4.15 (halts? p a) は任意の手続き p がオブジェクト a で停止するかどうかを判定する。 停止する場合は真を返し、停止しない場合は偽を返す。 (define (try p) (if (halts? p p) (run-forever) ‘halted)) 式 (try try) を評価すると、 (halts try try) が真(停止する)の場合、(try try) は停止…続きを読む
問題4.15 (halts? p a) は任意の手続き p がオブジェクト a で停止するかどうかを判定する。 停止する場合は真を返し、停止しない場合は偽を返す。 (define (try p) (if (halts? p p) (run-forever) ‘halted)) 式 (try try) を評価すると、 (halts try try) が真(停止する)の場合、(try try) は停止…続きを読む
Lecture-7a: Metacircular Evaluator, Part 1 MIT での"超循環評価器"の講義動画。 問題4.14 Louis が基本手続きとして組み込んだ map では、第1引数の"手続き"に ‘procedure のタグが付いていないために手続きとして評価されないため。 計算機プログラムの構造と解釈 posted with am…続きを読む
問題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…続きを読む