2001-07-03
λ. GImageView
良い感じ。
λ. 信念とか
- 『過去を変えることはできない。未来なら変えることができる。』
- 『未来を変えることはできない。過去なら変えることができる。』
λ. どちらを信じている人が多いだろうか? しかし、どちらも不健全な気がする。前者はどこか傲慢な匂いがするし、後者はあからさまに無責任だ。
λ. Re: w3m
どういう操作をしたか記憶を辿りながら色々試してみると、w3m/0.2.1でhttp://www.shishamo.com/でページの情報を表示しようと「=」を押してセグメンテーションフォールトしたという事みたい。
報告して既に同じ報告がされていたら何か恥ずかしいなぁと思って、w3m-devを覗いてみると、どうやら[w3m-dev 01993]だったようです。お騒がせしました。
λ. tDiary 1.0.0
おっ。1.0.0 が出てる。
λ. UNIXと溝
面白いなぁ。でも、elispが「新し物好き(Early Adopters)」のカテゴリーに入っているのは何かの間違いのような気がする。真の「新し物好き」は Guile Emacs を使え! な〜んちて。
2004-07-03
λ. 携帯が故障
充電してたらいつの間にか電源が入らなくなっていた。近くの電気屋に持ってったけどダメっぽかったので、新しいのを買った。電源が入らなかったのでデータを救出することも出来ずアドレス帳とかが全部パーに。orz
そんな訳で、お手数ですが、友人知人関係のみなさま、お手空きのおりに私の携帯メール宛にでも電話番号/メールアドレスをご通知いただけるとありがたいです。
λ. ネクロファンタジア
白と黒の夢郷の青汁さんのこの絵と文を読んで、無性に「ネクロファンタジア」(少女幻葬じゃない方)が聴きたくなり、久しぶりに妖々夢のPhantasmをプレイ。あー、「妖々跋扈 〜 Who done it!」も懐かしい。いいね、いいね。
ってな感じでプレイしてたら「弾幕結界」とれた(th7_udsa15.rpy)。第四段階は辛いのでレザマリの人の安地に逃げちゃったけどね(テヘッ)。というわけで、これでスペルカード取得枚数141/141。
λ. Bananas in Space: extending Fold and Unfold to Exponential Types
fixed points of difunctors can be expressed in terms of fixed points of covariant functors. って所にちと興味を持って眺めてみる。endo-difunctor F: Cop×C→C の最小不動点は、G: Cop→C, G(X) = μF(X,-) とおくと、μG2 と同型なんだそうだ。でも、いまいち良く分からなかったので、Peter Freyd. Recursive types reduced to inductive types. を探すかなぁ……
2006-07-03
λ. 知識発見法
- ナイーブベイズとベイジアンネットワーク
- 意思決定ネットワーク
- 情報量基準
- 最小記述長原理
- AIC (Akaike's Information Criterion, 赤池情報量規準)
情報量基準の話はいまだによくわかんない orz
λ. 人身事故
帰りの電車が人身事故で待たされる。 イライラする一方で、その人はどんな人だったのかと思う。
λ. 蟻
2008-07-03
λ. A brainf*ck interpreter in Erlang
HelloWorld を書いたので、次は brainf*ck のインタプリタでも。
-module(brainfuck). -export([brainfuck/1]). brainfuck(Src) -> Prog=parse(Src), seq(Prog, {[], [0]}). parse(X) -> {Y,_} = parse(X, []), Y. parse([], Acc) -> {lists:reverse(Acc), []}; parse([H|T], Acc) -> case H of $] -> {lists:reverse(Acc), T}; $> -> parse(T, ['>'|Acc]); $< -> parse(T, ['<'|Acc]); $+ -> parse(T, ['+'|Acc]); $- -> parse(T, ['-'|Acc]); $. -> parse(T, ['.'|Acc]); $, -> parse(T, [','|Acc]); $[ -> {Prog,X}=parse(T, []), parse(X,[{Prog}|Acc]); _ -> parse(T, Acc) end. seq(Prog, T) -> lists:foldl(fun (P,T1) -> step(P,T1) end, T, Prog). step('>', {L,[X|R]}) -> {[X|L], case R of [_|_] -> R; _ -> [0] end}; step('<', {[X|L],R}) -> {L, [X|R]}; step('+', {L,[X|R]}) -> {L, [ case X of 255 -> 0; _ -> X+1 end | R ]}; step('-', {L,[X|R]}) -> {L, [ case X of 0 -> 255; _ -> X-1 end | R ]}; step('.', {L,[X|R]}) -> io:put_chars([X]), {L, [X|R]}; step(',', {L,[_|R]}) -> [X] = io:get_chars("", 1), {L, [X|R]}; step({W}, T) -> while(W, T). while(_, {_,[0|_]}=T1) -> T1; while(W, T) -> while(W, seq(W, T)).
といっても、前にPrologで書いたもの を適当に翻訳しただけ。
Erlang shell から実行してみる。
% erl Eshell V5.6.3 (abort with ^G) 1> c(brainfuck). {ok,brainfuck} 2> brainfuck:brainfuck(" >+++++++++[<++++++++>-]<.>+++++++[<++++>-]<+.+++++++..+++.[-]>++++++++[<++ ++>-]<.>+++++++++++[<+++++>-]<.>++++++++[<+++>-]<.+++.------.--------.[-]> ++++++++[<++++>-]<+.[-]++++++++++."). Hello World! {[],[10,0]}