問題5.17 – SICP(計算機プログラムの構造と解釈)その266
問題5.17 make-new-machine に label 変数を追加する。 instruction リストに ‘label が存在する場合は advance-pc で次の命令へと進める。 execute で instruction リストの car が ‘label かどうかをチェックし、’label の場合は label 変数に値をセットし、’label でない場合は instructio…続きを読む
問題5.17 make-new-machine に label 変数を追加する。 instruction リストに ‘label が存在する場合は advance-pc で次の命令へと進める。 execute で instruction リストの car が ‘label かどうかをチェックし、’label の場合は label 変数に値をセットし、’label でない場合は instructio…続きを読む
問題5.16 make-new-machine にトレースの実行フラグを追加し、フラグのON/OFFメッセージの処理手続きを追加する。 (define (make-new-machine) (let ((pc (make-register ‘pc)) ;; 省略 (instruction-trace-flag #f) (the-instruction-sequence ‘())) ;; 省略 (d…続きを読む
aptitude で uim-skk をインストールする。 $ sudo aptitude install uim-skk インストール後 uim の設定画面から『全体設定』→『入力方式の利用準備』→『使用可能にする入力方式』の『編集…』ボタンをクリックして、SKK を有効のリストへ移動させる。SKK をリストの一番上に移動させる。 『入力方式の一時切り替え』の『副入力方式』を Ant…続きを読む
MacVim で ATOK2008 での日本語入力で問題があったりしたので、他の入力ソフトを試してみることした。 Ubuntu での入力環境と合せることも考えて AquaSKK を試してみた。 mac-uim も考えたけれど、ちょっと毛色の違ったものも試してみたかったので。 ちょっと使ってみての第1印象は、「送り仮名がわかんねー。」 手書きだとそうでもないのに、キーボードだと送り仮名の位置がわから…続きを読む
Mac のウィンドウ操作ユーティリティの Witch がシェアウェアとなっていたので、代わりのソフトはないかと探していたら Senebier というソフトウェアがあった。 Option + Tab でウィンドウ毎に切り替えができ、他にもランチャや履歴機能などがある。 設定画面を表示する方法は、Option + Tab で表示したウィンドウリスト上で右クリックしてコンテクストメニューを表示し『環境設…続きを読む
問題5.15 make-new-machine 手続きに命令計数を保持する変数 instruction-count を追加し、execute 手続きに instruction-count をインクリメントする処理を追加する。 instruction-count を取り出す手続き get-instruction-count と、初期化手続き initialize-instruction-count …続きを読む
問題5.14 シミュレーターに 5.2.4 の修正を加えて、図5.11の階乗計算機を実行する。 (define fact-machine (make-machine ‘(continue val n) (list (list ‘= =) (list ‘- -) (list ‘* *)) ‘(start (assign continue (label fact-done)) fact-loop (t…続きを読む
Ubuntu 8.04 (Hardy Heron) に Firefox3.5 をインストールして起動しようとすると、uim のバージョンが 1.4.1 のために起動できないらしい。 今月中には Ubuntu 9.10 (Karmic Koala) がリリースされるので(現在 Beta版がリリース中)、そちらを待とうかな。 LTS は安定して使い続けることができるけど、新しいソフトを使おうとするとハ…続きを読む
Apache2 のインストール $ sudo aptitude install apache2 デフォルトの文字コードを UTF-8 にする $ sudo vi /etc/apache2/conf.d/charset # 以下の行のコメントアウトを解除する。 AddDefaultCharset UTF-8 サイト共通のディレクトリ設定をする CGI を使用可能に、ファイルの一覧表示は行わない、.h…続きを読む
問題5.13 make-new-machine の lookup-register 手続きで、引数 name に該当するレジスタが見つからない場合に name レジスタを作成するように変更する。 ;;;; 修正前の make-new-machine (define (make-new-machine) ;; 省略 (define (lookup-register name) (let ((val …続きを読む