Archive for 3月, 2008

続2・やる夫がいきなりピンチだそうです ~カット~

月曜日, 3月 31st, 2008
前回のあらすじ~
           ____
       /::::::::::::::::\
      /::::::─三三─\
    /:::::::: ( ○)三(○)\  
    |::::::::::::::::::::(__人__)::::  | 引数3つで30分って何だお……
     \:::::::::   |r┬-|   ,/  こんなの遅すぎて使い物にならないお
    ノ::::::::::::  `ー’´   \ (これでも部分的にメモ化とか使ってるのに)
  /:::::::::::::::::::::            
 |::::::::::::::::: l   

続・やる夫がいきなりピンチだそうです ~バックトラック~

日曜日, 3月 30th, 2008
前回のあらすじ~
           ____
       /::::::::::::::::\
      /::::::─三三─\
    /:::::::: ( ○)三(○)\  
    |::::::::::::::::::::(__人__)::::  | Schemeの上でR6RSの形式的意味論を実装……だと?
     \:::::::::   |r┬-|   ,/  やる夫がやったことそのまんますぎるお!!!!!
    ノ::::::::::::  `ー’´   \ 
  /:::::::::::::::::::::            
 |::::::::::::::::: l   

やる夫がいきなりピンチだそうです

土曜日, 3月 29th, 2008
前回のあらすじ~
       ____
     /      \     
   /  _ノ  ヽ、_  \   ここまではなんとか分かったけど、
  /  o゚⌒   ⌒゚o  \   ここから先何をすればいいか分からないお……
  |     (__人__)    |  schemeworkshopの2007年のページにはICFPのページから
  \     ` ⌒´     /  登録をしろと書いてるけど、何を登録すればいいお……

やる夫がイギリスに行く気になったそうです

木曜日, 3月 27th, 2008
前回のあらすじ~
         /: : : :/ : : : : : : i: : : : : :ヽ : : : : ー 、 : : \
           /: : : / : : : : : : : ,イ : : : : : : :l: : : : : : : \- 、:\
.          /: : : / : /: : : : : : / |: : : : : :| : |、: : : : : : : : \ \}
       .’ : : :/ : /: : : : : : /  v : : : : l : |斗-: : ヽ: : : : ヘ
       |: : :/ : /| : : :― x   ∨: : :∧ | ∨: : :ハ: : : : :ハ
       |: :/ : /: | : : : : / `  |: : :/ j/- ∨: : :l: : : : : :|
       r┴、/:ヽ| : : : /     |: :/  示旡アV : :|: :|ヽ: : |   今度のschemeworkshopで
       |  | : :│: : /|.     | /   ト::爿/ ハ: :|: :| ’,: :|   発表しないか~?
       ’vーく ,x┤: / :|三≧x j/   込;リ { : | ∧ |  ∨   場所はイギリスだよ~
      /   ヽ. | /: :│ ,/      ‘    .:・} : |/ i/
        |  /⌒}:Ⅵ : :ヘ:.:.:.    ー’ーr’   /: : |
        {    /´}_ム: : :≧r 、 .. _ ー ‘ .. </: : : |
       ヽ    / }ヘ: : \\   厂}ヽ._/ | : : : |
.         \   __/  \: : \\x-┴く ヽ| : : :.′
         /   /ヽ     \ : ヽ \   |  |: : :/
      /     {ヽ}}     ヽ: : }  \ l  |: :∧
       / ̄ ̄ ̄\
     / ─    ─ \
    /  <○>  <○>  \.  はぁ・・・機会があれば…
    |    (__人__) し  |  (“いぎりす”って何県だっけ…)
    \    ` ⌒´    /   
    /              \

うはwwwPrologでGrass実装したwwww

月曜日, 3月 24th, 2008

つい最近Grassという言語を知りました。
登場したのは結構前みたいですね。
見事に時代に乗り遅れました。
しっかりとした操作的意味論が載っていたため、
R6RSの時と同様にPrologで作ってしまいました。
ソース: grass-sem-utf-8.swi
全角文字の入力は受け付けますが、
表示には対応していません。
実行結果

Yes
?- evaluate("うほwWWwwww",R).
w
R = [119, []] ;
No
?- evaluate("wwWWwv
wwwwWWWwwWwwWWWWWWwwwwWwwv
wWWwwwWwwwwWwwwwwwWwwwwwwwww", R).
ww
R = [119, []] ;
No

はてなようせいとまなぶ R5RS表示的意味論

金曜日, 3月 21st, 2008

はてなようせいとまなぶ R5RS表示的意味論
はてなようせい欲しさにやった。はてなようせいなら何でも良かった。反省はしていない。

「クヌギたん」のふる里は北摂

木曜日, 3月 20th, 2008

実家の隣町の商店街に行ってきました。
そしたら色々と面白いものを見つけてしまいました。
びんちょうタン TBSにて放送
(商店街の一角にて発見)

「クヌギたん」のふる里は北摂
(商店街の一角にて発見)

びんちょうタン
(商店街の一角にて発見)

レジ袋いらんで~!
(薬局にて発見)

クヌギたんカードとは一体何なのか非常に気になったので、
200円分の買い物をすることにしました。
レジで「袋は結構です」と宣言するものの、カードをくれる気配は無し。
仕方がないので「あの、レジ袋をもらわなかったらもらえるカードとやらはないんですか」と聞くと、
素敵なクヌギたんカードをもらえました。
クヌギたんカード
(5枚(1000円分)集めると100円キャッシュバック。結構お得)

もらってから気づいたんですが、この企画をしているのは市なんですよね。
つまり、クヌギたんは市公認のキャラクターなんでしょうか。謎です。
調べてみたら素敵なWebサイトも見つけました。

続・R5RSの形式的意味論

火曜日, 3月 18th, 2008

R5RSの形式的意味論ですが、ほとんど分かりました。
とりあえず概略を書いておきます。
プログラムは次の形で評価される。
E[[E]]ρκσ
Eは式、環境、次に評価する式、ストアを受け取り式の意味を返す意味関数
Eは式の集合の要素(つまり式)、
ρは環境(識別子(変数)を受け取りロケーション(アドレス)を返す関数)
σはストア(ロケーションを受け取り評価済みの値を返す関数)
κは次に評価する式(継続)
(κの初期値はλε*ρ.ε*)
式が複数の部分式に分けられるときは一箇所のみを評価し、
残りの箇所を評価するために継続渡し形式(CPS)が用いられる(κに適当なものを入れる)。
注意すべき点は同じ文字をフォントだけ変えて全く別のものとして扱っているということです。
はっきりいって慣れるまでかなり紛らわしいです。
あと、ほとんどの式はρとκを受け取ることによって評価され、直接σを受け取りません。
(例えば、 E[[K]] = λρκ.send(K[[K]])κ のような形をしています。)
変数の参照、書き換えなど一部の操作はσを受け取ってから評価が始まり、
以降の式には(変数を書き換えた場合は)新しいσを渡します。
それから、どうでもいいこととしては、継続渡し形式を使ってるため、call/cc自体はすごく簡単だとか。
とまあ、自分では分かったつもりなんですが、
言葉にして説明するって難しいですね。

ニコスクリプトのあれこれ

日曜日, 3月 16th, 2008

最近ニコニコ動画がニコニコ動画(SP1)となりましたが、
それに伴いニコスクリプトの処理が色々変わったみたいです。
以前作ったシューティングゲームですが、
今までは非常にロード時間が長かったです。
恐らく、ニコスクリプトを動画読み込み時点で全て内部表現に変換してから実行していたため、
その変換処理に時間がかかっていたと私は考えています。
それが、SP1になったらロード時間がほぼなくなりました!
これは凄いとおもったら、逆に実行時にやたらと重くなりました。
どうやら、内部表現に変換する作業を動的にやるような仕組みに変更したみたいです。
そもそも、動画投稿者がスクリプトを入力し終えた時点で内部表現に変換しておいて
動画再生時にはそれを使うようにすればいいとおもうんですけど、どうなんですかね。
まあ、シューティングゲームという時点で色々想定外なのかもしれませんが。

R5RSの形式的意味論

木曜日, 3月 13th, 2008

R5RSの7.2節 Formal semanticsを読み始めました。
以前読んだときはさっぱり分からなかったのですが、
今回は気合を入れて読んでみたところある程度分かってきました。
R5RSの形式的意味論の基本は
「式の一箇所を評価して、その値を残りの計算に渡す」
というもののようです。
“残りの計算”というものは関数になっており、
渡すというのは、関数適用することです。
全部理解するにはまだ時間がかかりそうです。
あと、実装する場合はPrologのような論理型言語ではなく、
関数型言語を使った方が簡単そうです。