SICP 4.1章を読んだ

lisplispを実装する章です。
ここ2週間ほど、lispインタプリタを実装してる。言語はC。

  • オブジェクトの表現 →rubyのぱくり
  • eval/apply →SICPのぱくり
  • パース →自作。やっつけ

だいたいは動くようになったんだけど、明らかにパースの部分が足を引っ張ってる。つぎはぎだらけで論理がはっきりしてない。それに比べてパクリ部分は論理も整然としていて扱いやすくてすばらしいなあと思う。
オレもそんな設計できるようにならんといかんなあ……

声優ソートやってみました。

2年くらい聞き続けている「ぱにらじだっしゅ!」の影響がモロに出ているなあ…

1 広橋涼
2 釘宮理恵
3 沢城みゆき
4 斎藤千和
5 能登麻美子
6 石毛佐和
7 平野綾
8 新谷良子
9 松岡由貴
9 松来未祐
11 雪野五月
12 水橋かおり
13 望月久代
14 ゆかな
15 後藤邑子
16 大原さやか
17 かないみか
17 金田朋子
19 川澄綾子
20 水樹奈々
20 皆口裕子
22 山本麻里安
23 植田佳奈
24 桑島法子
25 鹿野優似
25 川上とも子
25 神田朱未
25 喜多村英梨
25 木村まどか
30 井上喜久子
31 久川綾
32 浅野真澄
33 浅川悠
34 堀江由衣
35 氷上恭子
36 池澤春菜
37 三石琴乃
37 宮崎羽衣
39 門脇舞以
40 折笠愛
41 大谷育江
42 桃井はるこ
43 名塚佳織
44 白石涼子
45 生天目仁美
46 野中藍
47 西村ちなみ
48 野川さくら
49 豊口めぐみ
50 中原麻衣
51 白鳥由里
52 清水香里
52 千葉紗子
54 田村ゆかり
55 田中理恵
55 茅原実里
55 辻あゆみ
58 高山みなみ
59 田中真弓
60 冬馬由美
60 永島由子
62 志村由美
62 仙台エリ
62 高垣彩陽
62 高木礼子
62 たかはし智秋
62 高橋美佳子
62 竹内順子
62 中山恵里奈
62 根谷美智子
71 野田順子
71 長谷川静香
71 葉月絵理乃
71 朴王路美
71 花澤香菜
76 福井裕佳梨
77 松本梨香
78 皆川純子
78 森永理科
80 藤田咲
80 藤村歩
82 花村怜美
82 板東愛
82 半場友恵
82 樋口智恵子
82 福圓美里
82 福原香織
82 矢作紗友里
82 山口真弓
82 柚木涼香
82 吉住梢
82 渡辺明乃
93 林原めぐみ
94 後藤沙緒里
95 椎名へきる
96 小林ゆう
97 坂本真綾
98 小林由美子
99 こおろぎさとみ
100 小清水亜美
101 真田アサミ
102 落合祐里香
102 折笠富美子
102 甲斐田裕子
105 榎本温子
105 近江知永
105 緒方恵美
108 阿澄佳奈
108 新井里美
108 飯塚雅弓
108 井口裕香
108 伊月ゆい
108 伊藤静
108 稲村優奈
108 井ノ上奈々
108 井上麻里奈
108 いのくちゆか
108 今井麻美
108 遠藤綾
108 甲斐田ゆき
108 かかずゆみ
108 加藤英美里
123 相沢舞
123 あおきさやか
123 明坂聡美
123 浅倉杏美
127 小林美佐
127 こやまきみこ
127 今野宏美
127 酒井香奈子
127 榊原ゆい
127 阪田佳代
127 清水愛
134 倉田雅世
134 栗林みな実
136 桑谷夏子
137 國府田マリ子
138 笹川亜矢奈
138 佐藤利奈
140 佐久間紅美

星空めておと茗荷屋甚六がTYPE-MOONにいる

ってさっき知った!びっくり!
小梅けいとは?コンキスタドールは?
って、そっちはそっちで、ゆるゆると製作中らしい。これは同人なのね。

    • -

Girls' Work

“新宿”と呼ばれる大都会では、すべてのモノが白昼夢というフィルター越しに生活を営んでおり、誰もがそれに気付かぬまま奇跡と日常の狭間を行き来している 
そんな“まち”に宿る“こころ”を引き寄せたモノ、花の都・パリを夢見て、そしてそれを呼び寄せた“まち”を中心に綴られる物語 

これ読むとどーーしてもアレを思い浮かべちゃうんだけど。どうなんでしょ?

>「考えンな感じるのも後まわし動け走れ踊れ踊れ踊れ!」

とてもいい感じだ

未読の漫画がたまってる

昔ジャンプの読み切りに載っていた、「悪政を働く王様が討たれて、わがまま王女が庶民に成り下がる物語」がなんだったのか調べた結果、鈴木央(ライジングインパクトの人)のSAVAGEもしくはRevengeだということが分かった。
もう一度読みたいんだけど、単行本には収録されてなく、短編集も出ていないらしい。何とかして読みたーーい!その号のジャンプ大事にとっておいたはずなんだけど、いつの間にか親に捨てられてしまった。そのページだけ切り取っておけばよかったと後悔。

そんなわけで、会社帰りになんとなくライジングインパクト全10巻を一気買いしてしまった。今3巻読み終わったところ。1,2巻はすごく面白かった。プオーッってそんな効果音ねえよ。(中等部登場までは)キャラみんないいやつだし、こういう雰囲気の漫画は好き。でも3巻からなんか無茶な形状のコースがいっぱい出てきて、なんだかなあ・・・ゴルフ勝負よりもっと日常を描いてほしいなあ・・・


他、たまってる漫画

エディタのアンダースコアのキーバインドを変更

英文のようなメソッド名をタイプするとアンダースコアが大量に出てきてしまい、小指を酷使しなくてはならないことに気付き、アンダースコアをShift+Spaceに割り当てる。

関数名に引数を埋め込める言語を作ろうとするテスト

アセンブラによってオペランドの流儀が2つあったりして分かりづらい

mov dist, src
mov src, dist

とか。

ま、アセンブリなんてほとんど使わないのですが、高級言語でも引数の順番が覚えられないことが多くて困ります。これ、英語の文章っぽくコード書ければ引数の順番間違えが減るんじゃないかと思った。なので、rubyのメソッド名に引数を埋め込んでみる。

#!/usr/bin/ruby

def method_missing(name, *arg)
    if /^gsub_(\w+)_to_(\w+)_in_(\w+)/.match(name.to_s)
        return eval($3,arg[0]).gsub(eval($1,arg[0]), eval($2,arg[0]))
    end
end

a="aho"
b="baka"
str = "hoge fuga aho baka"
p gsub_a_to_b_in_str(binding) # => "hoge fuga baka baka"

method_missing中にgsubが2回出てくるのが気に食わない。もっとメソッドの仕様と英文法とをうまく結びつけるレイヤーを追加してごにょごにょとか。あとバインディング渡すの面倒。
ま、"機能名、オプション情報1、オプション情報2、……"
なんて文法に必ずしも縛られる必要は無いかなあという。いや、オイラー大先生は偉大ですけど。

WSHツール作るときのテンプレート

人にツール作ってって頼まれたときはwshで動作するものを作るのが便利。
わざわざexeファイル作んなくてもいいし、rubyとかperlとか怪しげなソフトウェアをインストールしてもらわなくてもいいので、気軽にツール作って渡せる。
インターフェースとしては、設定ファイルをドラッグアンドドロップすると、実行結果としてそのフォルダに新たにファイルが出来るってのが簡単でいいかな。
というわけで、そんなツールを作るためのテンプレートをとりあえず作った。言語はjscript

var objWshShell = WScript.CreateObject("WScript.Shell");
var fso = WScript.CreateObject("Scripting.FileSystemObject");
objWshShell.CurrentDirectory = fso.getparentfoldername(WScript.ScriptFullName); // カレントディレクトリを変更

function readfile(f)
{
    return f.readline();
}

function writefile(f,str)
{
    f.writeLine(str);
}

// main
filename = WScript.arguments(0);
var fin = fso.Opentextfile(filename);
var fout = fso.CreateTextFile("out.txt",true);

s = readfile(fin);
writefile(fout,s);

fin.close();
fout.close();

これを *.jsファイルとして保存して、*.jsファイルへ適当なファイルをドラッグアンドドロップすると、その中身の1行目がout.txtというファイルに出力されます。
そんだけ