問題4.36 – SICP(計算機プログラムの構造と解釈)その210
問題4.36 単純に an-integer-between を an-integer-starting-from に変更しただけでは、任意の Pythagoras 三角形を生成する方法として適切でない理由は。 an-integer-starting-from は継続を失敗することが無いために無限に継続するので、バックトラックできないため計算ができない。 正常に計算できるためには、最大値を与えて継続…続きを読む
問題4.36 単純に an-integer-between を an-integer-starting-from に変更しただけでは、任意の Pythagoras 三角形を生成する方法として適切でない理由は。 an-integer-starting-from は継続を失敗することが無いために無限に継続するので、バックトラックできないため計算ができない。 正常に計算できるためには、最大値を与えて継続…続きを読む
問題4.35 最初に思いついた解答がこれ。 2つの整数間の数からなるリストを作り、 an-element-of でその内の1つの整数を返す。 (define (require p) (if (not p) (amb))) (define (an-element-of items) (require (not (null? items))) (amb (car items) (an-element-…続きを読む
4.3.3 amb 評価器の実装 問題を解いていく前に、先に4.3.3節に進み amb 評価器を実装する。 以下が4.1.7節の評価器をベースにして、4.3.3節の解説に基づき実装した amb 評価器。 (define true #t) (define false #f) ;; 基盤の apply への参照を apply-in-underlying-scheme へ退避させる(こうすることで、基盤…続きを読む
問題4.33 元の評価器でのクォート式の実行結果 ;;; L-Eval input: (define (cons x y) (lambda (m) (m x y))) ;;; L-Eval value: ok ;;; L-Eval input: (define (car z) (z (lambda (p q) p))) ;;; L-Eval value: ok ;;; L-Eval input: …続きを読む
Firefox3.5 で取り込まれた text-shadow を使ってみる。 text-shadow は "テキストそのもの" と "text-decoration" に対して効果が適用される。 書き方 "影の色"、"水平方向の移動距離"、"垂直方向の移動距離"、"ぼかしの強さ"…続きを読む
Firefox3.5 から実装された native JSON を使ってみる。 以下のスクリプトの実行には Firefox3.5 以上が必要。 スクリプトコード <script type="text/javascript"> var jsonTestRun = function() { var jsonSource = ‘{ "name" : &q…続きを読む
以下のコマンドで、ディレクトリ ~/.vim/doc の Vim ヘルプタグファイルを作成することができる。 :helptags ~/.vim/doc
<logger-generic> をカスタマイズして、ログ出力の on/off を切り替える。 (use srfi-1) (use gauche.time) (define-class <logger-generic> (<generic>) ((printlog :init-value #f) ; スロットにログ出力フラグを追加 ())) (define-me…続きを読む
Safari4 にアップグレードしてから "flash を設置しているサイト" の読み込みが完了せず、表示されないようになってしまった。 flash の無いサイトは問題なく表示されていて、flash のあるサイトの読み込み時でも Safari がフリーズしてしまっているわけではない。 いろいろ検索してみると、どうやら SafariStand が原因だったらしい・・・ Safar…続きを読む
問題4.32 3章のストリームと4.2.3節の遅延評価リストとの間の違いは、リストの car の部分を遅延評価するかどうかである。 以下のように4.2.3節の遅延評価リストでは、未定義の x, y を使ったリストを定義できる。 ;;; L-Eval input: (define st (cons x y)) ;;; L-Eval value: ok ;;; L-Eval input: st ;;;…続きを読む