さかもとのブログ

つらつらと

vmware fusion3でwindowsXPを入れた

研究室でiMacを買ってもらい、ついでにvmware fusionも買ってもらったので、もともと使っていたwinXPを仮想マシンにし,vmwareで起動した. さっきまで使っていたXPがiMacの中に入っちゃった.vmすごいな.でも結構はまってしまった...。 vmware fusion3には…

ついにきた

ポニョはこうして生まれた。 ~宮崎駿の思考過程~ [DVD]出版社/メーカー: スタジオジブリ発売日: 2009/12/08メディア: DVD購入: 4人 クリック: 34回この商品を含むブログ (16件) を見る 直前での発売延期になったときはショックだったけれど、やっときました。…

closure論争

最近では開発が止まってしまっている?模様の”Closures for the Java Programming Language"を調べていると,closureの定義で論争が起こってい{る?|た?}ことを知った. まだまだ調べている最中なので何とも言えず,以下のこともどこか間違っているかもしれな…

うーむ....

南直哉さんと茂木健一郎さんの対談 仏教者である南直哉さんと茂木さんの対談音声です。 基本的には南さんがお話をしています。 2時間10分と少し長いですが、ぜひ聞いてみてください。メモは取らずに聞くといいと思います。仏教の視点がわかってとても楽しい…

そろそろ就活です

池田さん*1が新潮社に入った頃、 編集者の中には、物書きになるための 1ステップと考えている人も多かったが、 そんな風潮に先輩が一言釘をさしたという。生活するためには、一体一年にどれくらい 本が売れて、それが文庫本になってちゃんと 回転して・・・…

架空請求?葉書が来た

実家に住んでいる姉のところにあやしーい葉書がきた。内容はよく分からないけれど、裁判を起されたらしいw 今日届いて今日何かの期限らしい。(すでに怪しい)以下が連絡先になっていたところ 日本管財事務所 0335055872 東京都中央区入船1-1-13 日本管財事務…

第16章マクロを定義するマクロ

コード内に生じたパターンは,しばしば新しい抽象化の必要性のしるしである.これはマクロ自身のコードについても全く同様である.いくつかのマクロが似た形で定義されているとき,マクロを定義するマクロを書いてそれらを生成させればよい場合がある. マク…

研究室の合宿に行ってきました

9月4、5日に研究室の合宿に行ってきました。(さっき帰ってきたばかりです。) 合宿と言っても「いつものゼミを旅行を兼ねて外でやる」というものなので、大したことはしていません。なので合宿内容については特に書くことがありませんwところで今年は群馬県桐…

OnLisp第11章do-tuples/c

clispの組み込みのwith-gensymsを使って,do-tuples/cを定義する場合,OnLispに載っているままではエラーになってしまう. [195]> (load "***.lsp") ;; Loading file ***.lsp ... *** - CONCATENATE: SRC is not a SEQUENCE The following restarts are avai…

clispのwith-gensyms

OnLispのP.149でwith-gensymsを定義しているのだが,clispにはもともとマクロで定義されている. Similar to its namesake from Paul Graham's book “On Lisp”, this macro is useful for writing other macros: (with-gensyms ("FOO-" bar baz zot) ...) ex…

OnLisp第11章condletの定義で知ったCommon LispとScheme(Gauche)のletの違い

タイトル長いけれど,言いたいのは, common lispでは [81]> (let (a b c) (list a b c)) (NIL NIL NIL) Gaucheでは gosh> (let (a b c) (list a b c)) *** ERROR: Compile Error: syntax-error: malformed let: (let (a b c) (list a b c)) "(stdin)":181:(…

OnLisp第7章より

ただのメモです. マクロは呼び出せるし値を返せるので,関数と一緒くたにされがちだ.マクロ定義は関数定義に似ていることもあるし,実際はマクロであるdoを普段「組み込み関数」と呼ぶ人も多い.しかしこの喩えを突き詰めすぎると混乱のもとになる.マクロ…

foldを使う

簡単にまとめると、明示的な再帰を用いるプログラミングスタイルはよろしくないと言うこと。Haskellwikiにもそう書かれている。良い関数型プログラマは再帰を用いず再帰をパターン化した高階関数を使うのだそうだ。 maoeのブログ ということで,OnLispを少し…

同じ文字をまとめる

http://www.shido.info/gb/guestbook.php?id=1413 common lispでの実装を通して,schemeとの違いが書かれている. このページに (pack '(a a a a b c c a a d e e e e)) ((A A A A) (B) (C C) (A A) (D) (E E E E))と結果が返ってくるような関数packが載って…

茂木健一郎さん×白洲信哉さん トークショー

茂木健一郎さん×白洲信哉さん トークショー 行きたいな...茂木さんはまぁいいんだけど、白洲さんが何をお話になるのか...なんたって小林秀雄の血が流れている!しかし、場所がリッツカールトン東京...嫌な予感が...やはり参加費は3万円...高い!無理だ。しか…

SICP終了

SICP終了します。最後の問題がいくつか残っているけれど、とりあえずこれでいったん終えます。初めのほうはここには記録を残していないので、いつ始めたかわからない...と思ったらノートに 日付が!4月25日に始めたようです。 SICPによって得られたもの... S…

SICP演習問題5.48

演習問題を少し飛ばして,5.48です. しかもかなり適当...一応EC-EVALから,compile-and-goを呼び出せますが,compile-and-goを呼び出す度に,ecevalを初期化してしまうので,コンパイル済みコードは1つしか環境に登録できませんw 方法は至って簡単.eceval…

SICP演習問題5.42

(define (found? var) (if (not (eq? var 'not-found)) var false)) (define (compile-variable exp target linkage compile-time-env) (let ((found (found? (find-variable exp compile-time-env)))) (end-with-linkage linkage (make-instruction-sequenc…

SICP演習問題5.41

(define (first-frame env) (car env)) (define (first-variable frame) (car frame)) (define (find-variable variable env) (let ((frame-num 0) (variable-num 0)) (define (scan-frame env) (if (null? env) '() (let ((frame (first-frame env))) (if (…

SICP演習問題5.40

コード生成関数のすべてに翻訳時環境を追加。(コードは略) (define (compile-lambda-body exp proc-entry compile-time-env) (let ((formals (lambda-parameters exp))) (print "compile-time-environment: "compile-time-env) (append-instruction-sequence…

SICP演習問題5.39

たいぶおかしなコードですがお許しください。 (define (search-frame frame-num env) (define (scan-frame count env) (cond ((null? env) (error "search-frame" frame-num env)) ((= count frame-num) (car env)) (else (scan-frame (+ count 1) (cdr env)…

演習問題5.40について

め、め、め、めんどーだ.......コード生成関数のすべてに翻訳時環境を追加するって...

SICP演習問題5.35

今回は,載っている翻訳済のコードを生み出すような式をもとめよ,という問題 翻訳済のコードは以下のもの.(SICPのサイトより抜粋) (assign val (op make-compiled-procedure) (label entry16) (reg env)) (goto (label after-lambda15)) entry16 (assign e…

SICP演習問題5.34

factorialの反復的プロセス版を翻訳する (print-after-compiler (compile '(define (factorial n) (define (iter product counter) (if (> counter n) product (iter (* counter product) (+ counter 1)))) (iter 1 1)) 'val 'next)) 結果 (env) (val) (assi…

SICP演習問題5.33

昨日のprint用の関数を少し直した. (define (print-after-compiler proc) (newline) (for-each (lambda (x) (if (not (pair? (car x))) (print x) (for-each (lambda (y) (if (symbol? y) (print y) (print " "y))) x))) proc)) 今回の問題は (define (fact…

SICP演習問題5.36, 5.37

5.36 operandsを評価するのは (define (compile-application exp target linkage) (let ((proc-code (compile (operator exp) 'proc 'next)) (operand-codes (map (lambda (operand) (compile operand 'val 'next)) (operands exp)))) (preserving '(env con…

コンパイラ

5.5ではコンパイラを作成する. なんとか動くものはできたけど、全然理解できていない. 最後の節は訳がひどい!が,原著もなかなかわかりにくい... 翻訳のほうは,なんであんなに点の使い方が下手なんだろう.せめて点をうまく使えば,直訳だとしても,意味…

ついに5.5に入る

5.29, 5.30があるけれど、パスして5.5に入る。 ついに最後です!

SICP演習問題5.26, 5.27, 5.28

3問続いているけれど,やることは同じなのでまとめてしまう. 5.26 (define (factorial n) (define (iter product counter) (if (> counter n) product (iter (* product counter) (+ counter 1)))) (iter 1 1)) を実行するときのスタックを監視せよという問…

積極制御評価器と演習問題5.23, 5.24

積極制御評価器...漢文みたいな名前. 5.23と5.24が組み込んであります. reg-machine-with-meter.scmはレジスタ計算機のスタック監視機能がついているもの. evaluator.scmは4.1の超循環評価器のapply,evalを削除したもの. (load "~/hoge/foo/reg-machine-…