脱皮失敗2.0

3月 10th, 2008

本日無事に京都に帰ってきました。
同行してくださったbugyoさん、宿を提供してくださったbokkoさん、
的確なアドバイス(*)を下さったnishさん、本当にありがとうございました。
gauche.nightを振り返ってみて、一番の思い出はやはり
「脱皮失敗2.0」
でした。詳しくはg000001さんに聞いてください。
以下、覚えていることを適当に書き散らしたメモ

  • 黒田さんの発言
    • CommonLispはCを書いてる人が上手に書ける。下手なのはJavaを書いてる人
    • プログラムは計算機で動かすことを忘れてはいけない
    • SICPはコンピュータサイエンスの本でプログラミングの本じゃない
    • funcallが嫌いなSchemerが多いけど、applyはいいの?
  • shiroさんの発言
    • 英語が話せるから外国に行くのではなく、いく必要があれば英語を覚える
  • わだばさんの発言
    • セミの幼虫は土から出てきたときぎりぎりのエネルギーしか持っていないため、
      少しでもエネルギーを無駄にすると…
    • 大きなカブトムシを見つけたと思って持ち上げて裏返してみると、腹の部分だけ鳥に…
    • ザリガニは脱皮に失敗して死にかけることがある。そして成功したとしても…
    • ザリガニは脱皮直後で体が柔らかいときに小学生にプニプニされる。
      内臓に負担がかかりそう
  • 雑記帖の中の人に会えなかった。残念
  • 「やる夫がgauche.nightに…」を読んでる人が結構いた
  • 「はてなようせいとまなぶ…」も同様
  • ゆとりTシャツはひらがなで「ゆとり」の方が分かりやすかった?
  • 出番の前にビール一杯じゃ足りなかった

gauche.nightに関するまともなメモはyharaさんのメモがよくまとまってお勧めです。
私の中では脱皮失敗の印象が強すぎて他のことが思い出せません(笑)
やる夫シリーズは当分お休みにしようかと思います。
また何か大きなイベントに参加することにでもなると復活するかもしれません。

(*)「ゆとりTシャツ」と「名刺スラッシュ」のこと

やる夫がgauche.nightに出演するそうです ~当日編~

3月 9th, 2008
3/8の出来事
~おやつの時間頃~
     ____
   /      \
  /  _ノ    ⌒\  東京についたお
/    (○)  (○) \  朝の5時から電車に乗り続けて
|       (__人__)    |   既にしんどいお…
/     ∩ノ ⊃  /   
(  \ / _ノ |  |
.\ “  /__|  |
  \ /___ /
~しばらくして~
       ____
     /⌒  ⌒\
   /( ●)  (●)\
  /::::::⌒(__人__)⌒::::: \   会場に着いたお!!!
  |     |r┬-|     |
  \      `ー’´     /
            ___
       /      \
      /ノ  \   u. \     なんか控え室とやらに案内されたお…
    / (●)  (●)    \    なんだかよく分からないというか、
    |   (__人__)    u.   |    何にも分からないお…
     \ u.` ⌒´      /    あ、なんだか人が集まり始めてきたお!
    ノ           \    
  /´               ヽ  
 |    l              \
 ヽ    -一””””~~``’ー–、   -一”””’ー-、.
  ヽ ____(⌒)(⌒)⌒) )  (⌒_(⌒)⌒)⌒))
ざわ・・・ざわ・・・
     , ’´ ̄ ̄` ー-、
   /   〃” `ヽ、 \
  /    ハ/     \ハヘ  
  |i  、 |リ ’       }_}ハ 
  |i | 从 ●    ●l小N  だから、Gaucheはこの機能がなくて困るにょろ。
  |i (| ⊂⊃ 、_,、_, ⊂li|ノ  次のバージョンでは付けてほしいにょろ。
  | i⌒ヽ j  (_.ノ   ノi|__  
  | ヽ  ヽx>、 __, イl |::::
  | ∧__,ヘ}::ヘ三|:::::/l| |’,:::::
  | ヾ_:::ッリ :::∨:/ | | >”
  i^,\ _,,_ /^l
    lノ  \ i|l /ヾノ
   シ “ ( ●)  (● )ミ キリッ
  メ  = ⌒(__人__)⌒=ヽ    皆でshiroさんに頼んでみたらどうでしょうか
 彡           ;ミ     ここで頼めば付けてくれるかもしれませんよ。
   ヾ         ン
   /     ””  |
         ,.. — ..
       ,..-.:. ̄.:..:..:.. : : : : `丶、
      /:..:..:. ..: : : : : : : : : : : : :\
    /:ヘ=、、:._: : : : __:ヽ:_: -^,.ト、
   ノ:..:..:./:..  ̄: :7´:―― : :|‐: :´、: ヽヽ
  ー-/:..:.i:../:. : : ,/:..:.:イ:.ハ:.. : j:.. :}:.、ヽ:. トヽ
    !:..:..:|:.{/:..ィ_jz≦ノ ‘ }:./_}_イ:. } |:.|||
    Vl:.:.|:. Vl´「_ 、` ノ′ _ノ:ソ:イ: リ ノ
.      }:ハ: : l f7「::`ハ   /:::7}7イ:/}/  
     ノヘーl、: :!VZツ     ヒ:ノ/:.//
        `ィヘ:ト、 _   _   ノ:イ/
      rく、\` ヽ二コ:千:|K、′      ・・・・・。やっぱりその機能はほしい。
      |:..:ヽヽ\: :Yニ|: :!:/j!:.l       こないだも、ソース書いたときに云々・・・・・・。
      ト:..:..:.\ヽ\!r|┴=ミ!r ァ7
     |!::.:..:.ヽ\ヽ|!    /7 /
      j::.l::..:..:.⌒ーァ⌒}   / / /^}
      |::.:.\::..::.::.::>ー’―-L∠_¨´
      l::.::.:..:. ̄ ̄ト 、, –、―弋i
       ヽ::.:..:..:.::..∧/    ヽ  i _ .. -―
       ``ーニ´/ー-、   | _|
       _. -―  ̄  ト―.:「:.:l
                 ヽ:..__:L_|
ざわ・・・ざわ・・・
       /      \
      /ノ  \   u. \ !?
    / (●)  (●)    \  (言葉の意味が分からないお…)
    |   (__人__)    u.   |
     \ u.` ⌒´      /
         ____
       /      \!??
      /  u   ノ  \     (本当に右も左も分からないお…)
    /      u (●)  \
    |         (__人__)|
     \    u   .` ⌒/
           ____
       /::::::::::::::::\
      /::::::─三三─\
    /:::::::: ( ○)三(○)\  
    |::::::::::::::::::::(__人__)::::  | あと、Tシャツ1枚だと肌寒いお!
     \:::::::::   |r┬-|   ,/ 
    ノ::::::::::::  `ー’´   \ 
  /:::::::::::::::::::::            
 |::::::::::::::::: l  
            / ̄ ̄\
          /   _ノ  \  ■ gauche.night出演者控え室
          |    ( ●)(●)   多数のSchemerの会話を聞ける貴重な場所
          |     (__人__)   もちろん皆Gaucheを熟知している
             |     ` ⌒´ノ
              |          }   Gaucheも知らない上に、
              ヽ        }    Schemeも普段書いてない人が潜入すると、
            ヽ、.,__ __ノ   いるだけでダメージを受け続ける。
   _, 、 -― ””::l:::::::\ー-..,ノ,、.゙,i 、   
  /;;;;;;::゙:’:、::::::::::::|_:::;、>、_ l|||||゙!:゙、-、_
~開幕直前~
       ____
     /⌒  ⌒\     室温に慣れてきたせいか、
   /( ●)  (●)\    寒くなくなってきたお
  /::::::⌒(__人__)⌒::::: \   そして、そろそろはじまるお!
  |     |r┬-|     |  
  \      `ー’´     / 
       ____
     /⌒  ⌒\    まあ、高校時代までは
   /( ―)  (―)\   真冬の駅伝大会も袖なしのユニフォームで
  /::::::⌒(__人__)⌒::::: \ 走っていた人種だお。
  |              |  Tシャツ1枚あれば大丈夫だお
  \               / ゆとりは風邪ひかないお
     ____     
   /      \     
  /  ─    ─\    (出番がまだ先とはいえ、そろそろ覚悟を決めるお…
/    (●)  (●) \    ここはひとまず…)
|       (__人__)    |    
/     ∩ノ ⊃  /     
(  \ / _ノ |  |     
.\ “  /__|  |  
  \ /___ /
         ____
        /\  /\
      /( ●)  (●)\
     / :::::⌒(__人__)⌒:::::\ 
     |     |r┬-|       | 
     \     ` ー’´     /
     /          \
      | ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ |  トン
   _(,,) ビール1つ!    (,,)_
  /  |               .|  \
/    |               .|    \
    .|__________|
~gauche,night開幕~
       /      \
      /ノ  \   u. \ いよいよ始まってしまったお…
    / (●)  (●)    \  (やる夫の出番はもう少しさきだお…)
    |   (__人__)    u.   |
     \ u.` ⌒´      /
            / ̄ ̄\
          /   _ノ  \  ■ gauche.night構成
          |    ( ●)(●)   (第一部前半)Gauche本ができるまでの話
          |     (__人__)   (第一部後半)座談会「R6RSを斬る」
             |     ` ⌒´ノ   (第二部)デモ大会「gauche.gong」
              |          }   
              ヽ        }    第一部は前半と後半に分割された。
            ヽ、.,__ __ノ   「プログラミングGauche」が刷り終わったのは
   _, 、 -― ””::l:::::::\ー-..,ノ,、.゙,i 、   gauche.nightの前日だったらしい。
  /;;;;;;::゙:’:、::::::::::::|_:::;、>、_ l|||||゙!:゙、-、_
~第一部後半開始~
            , ‘´  ̄ ̄ ` 、
          i r-ー-┬-‐、i
           | |,,_   _,{|
          N| “゚’` {“゚`lリ   それでは座談会の
             ト.i   ,__”_  !   出演者に舞台に上がってもらいましょう!
          /i/ l\ ー .イ|、    
    ,.、-  ̄/  | l   ̄ / | |` ┬-、 
    /  ヽ. /    ト-` 、ノ- |  l  l  ヽ.
  /    ∨     l   |!  |   `> |  i
  /     |`二^>  l.  |  | <__,|  |
_|      |.|-<    \ i / ,イ____!/ \   .|     {.|  ` - 、 ,.---ァ^! |    | ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄l __{   ___|└―ー/  ̄´ |ヽ |___ノ____________|   }/ -= ヽ__ - 'ヽ   -‐ ,r'゙   l                  | __f゙// ̄ ̄     _ -'     |_____ ,. -  ̄ \____|   | |  -  ̄   /   |     _ | ̄ ̄ ̄ ̄ /       \  ̄| ___`\ __ /    _l - ̄  l___ /   , /     ヽi___.|  ̄ ̄ ̄    |    _ 二 =〒  ̄  } ̄ /     l |      ! ̄ ̄| _______l       -ヾ ̄  l/         l|       |___|        / ̄ ̄ ̄\      / ─    ─ \     /  <○>  <○>  \.  さあ、いくお!
    |    (__人__) し  |  別に緊張なんてしてないお!!!
    \    ` ⌒´    /   
    /              \
            , ‘´  ̄ ̄ ` 、
          i r-ー-┬-‐、i
           | |,,_   _,{|
          N| “゚’` {“゚`lリ   出演者の方、自己紹介をお願いします。
             ト.i   ,__”_  !   まずは、私の左側のやる夫さん。
          /i/ l\ ー .イ|、    
    ,.、-  ̄/  | l   ̄ / | |` ┬-、 
    /  ヽ. /    ト-` 、ノ- |  l  l  ヽ.
  /    ∨     l   |!  |   `> |  i
  /     |`二^>  l.  |  | <__,|  |
_|      |.|-<    \ i / ,イ____!/ \   .|     {.|  ` - 、 ,.---ァ^! |    | ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄l __{   ___|└―ー/  ̄´ |ヽ |___ノ____________|   }/ -= ヽ__ - 'ヽ   -‐ ,r'゙   l                  | __f゙// ̄ ̄     _ -'     |_____ ,. -  ̄ \____|   | |  -  ̄   /   |     _ | ̄ ̄ ̄ ̄ /       \  ̄| ___`\ __ /    _l - ̄  l___ /   , /     ヽi___.|  ̄ ̄ ̄    |    _ 二 =〒  ̄  } ̄ /     l |      ! ̄ ̄| _______l       -ヾ ̄  l/         l|       |___|       ____      /\  /\    /( ●)  (●)\     知ってる人はしってると思いますが、   / :::::⌒(__人__)⌒:::::\   リリカルLispというわけの分からないものを   |     |r┬-|       |   作ったやる夫だお!   \     ` ー'´     /               , '´  ̄ ̄ ` 、           i r-ー-┬-‐、i            | |,,_   _,{|           N| "゚'` {"゚`lリ  「私とGaucheとの関わり」という話を              ト.i   ,__''_  !  お願いします。           /i/ l\ ー .イ|、         ,.、-  ̄/  | l   ̄ / | |` ┬-、      /  ヽ. /    ト-` 、ノ- |  l  l  ヽ.   /    ∨     l   |!  |   `> |  i
  /     |`二^>  l.  |  | <__,|  |
_|      |.|-<    \ i / ,イ____!/ \   .|     {.|  ` - 、 ,.---ァ^! |    | ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄l __{   ___|└―ー/  ̄´ |ヽ |___ノ____________|   }/ -= ヽ__ - 'ヽ   -‐ ,r'゙   l                  | __f゙// ̄ ̄     _ -'     |_____ ,. -  ̄ \____|   | |  -  ̄   /   |     _ | ̄ ̄ ̄ ̄ /       \  ̄| ___`\ __ /    _l - ̄  l___ /   , /     ヽi___.|  ̄ ̄ ̄    |    _ 二 =〒  ̄  } ̄ /     l |      ! ̄ ̄| _______l       -ヾ ̄  l/         l|       |___|      ____    /      \   /  _ノ    ⌒\  (Gaucheとの関わり…) /    (○)  (○) \   |       (__人__)    |   /     ∩ノ ⊃  /    (  \ / _ノ |  | .\ “  /__|  |   \ /___ /            ____        /::::::::::::::::\       /::::::─三三─\     /:::::::: ( ○)三(○)\  あ り ま せ ん お!!!!     |::::::::::::::::::::(__人__)::::  |       \:::::::::   |r┬-|   ,/      ノ::::::::::::  `ー'´   \   /:::::::::::::::::::::              |::::::::::::::::: l               , '´  ̄ ̄ ` 、           i r-ー-┬-‐、i            | |,,_   _,{|           N| "゚'` {"゚`lリ  ……それでは次の方。              ト.i   ,__''_  !            /i/ l\ ー .イ|、         ,.、-  ̄/  | l   ̄ / | |` ┬-、      /  ヽ. /    ト-` 、ノ- |  l  l  ヽ.   /    ∨     l   |!  |   `> |  i
  /     |`二^>  l.  |  | <__,|  |
_|      |.|-<    \ i / ,イ____!/ \   .|     {.|  ` - 、 ,.---ァ^! |    | ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄l __{   ___|└―ー/  ̄´ |ヽ |___ノ____________|   }/ -= ヽ__ - 'ヽ   -‐ ,r'゙   l                  | __f゙// ̄ ̄     _ -'     |_____ ,. -  ̄ \____|   | |  -  ̄   /   |     _ | ̄ ̄ ̄ ̄ /       \  ̄| ___`\ __ /    _l - ̄  l___ /   , /     ヽi___.|  ̄ ̄ ̄    |    _ 二 =〒  ̄  } ̄ /     l |      ! ̄ ̄| _______l       -ヾ ̄  l/         l|       |___|        ____      /      \         /  _ノ  ヽ、_  \   (やる夫はもう役割を果たしたお…   /  o゚⌒   ⌒゚o  \   もうゴールしていいお?)   |     (__人__)    |     \     ` ⌒´     /              / ̄ ̄\           /   _ノ  \  ■ 座談会の内容           |    ( ●)(●)   きっと他の方がまとめてくれると思うので、           |     (__人__)   ここには特に書かない。              |     ` ⌒´ノ                  |          }   個人的に気になったのが、               ヽ        }    表示的意味論をやめて操作的意味論にしたから、             ヽ、.,__ __ノ    『Algorithmic Language』というよりは    _, 、 -― ''"::l:::::::\ー-..,ノ,、.゙,i 、   『Programming Language』になったということ。   /;;;;;;::゙:':、::::::::::::|_:::;、>、_ l|||||゙!:゙、-、_ 出演者は皆R6RSに批判的だった?
~座談会終盤~
            , ‘´  ̄ ̄ ` 、
          i r-ー-┬-‐、i
           | |,,_   _,{|   いますぐR6RSを試す方法ということですが、
          N| “゚’` {“゚`lリ  やる夫さんが、Prologでインタプリタを書いたみたいです。
             ト.i   ,__”_  !   そちらのお話を願いします。
          /i/ l\ ー .イ|、    
    ,.、-  ̄/  | l   ̄ / | |` ┬-、 
    /  ヽ. /    ト-` 、ノ- |  l  l  ヽ.
  /    ∨     l   |!  |   `> |  i
  /     |`二^>  l.  |  | <__,|  |
_|      |.|-<    \ i / ,イ____!/ \   .|     {.|  ` - 、 ,.---ァ^! |    | ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄l __{   ___|└―ー/  ̄´ |ヽ |___ノ____________|   }/ -= ヽ__ - 'ヽ   -‐ ,r'゙   l                  | __f゙// ̄ ̄     _ -'     |_____ ,. -  ̄ \____|   | |  -  ̄   /   |     _ | ̄ ̄ ̄ ̄ /       \  ̄| ___`\ __ /    _l - ̄  l___ /   , /     ヽi___.|  ̄ ̄ ̄    |    _ 二 =〒  ̄  } ̄ /     l |      ! ̄ ̄| _______l       -ヾ ̄  l/         l|       |___|        ____      /      \     えーと、R6RSのAppendixAに載っている    /  _ノ  ヽ、_  \   形式的意味論の式をそのまま使って、   /  o゚⌒   ⌒゚o  \   PrologでR6RSのサブセットを作りました。   |     (__人__)    |  (そう、さっき批判されまくってた操作的意味論だお)   \     ` ⌒´     /  ざわ・・・ざわ・・・           ____         /:;:;:;:;:`ヽ.        ./;/   ヽ;:',       /;/ __,.ヘ、___!___       ,. |/'"´::::|:::::ヽ::::::::::::`"'' 、   ,. ,. ''::::::!:::::::::/|:::::::::i:::::::::::::::::::、:::::ヽ、  '´ /::::::::::::::::/レ|:::::::::i:::::ヽ、ヽ;:::::\:::::',       おお…それはまた…   /:::::::::::::::::::/|:::::i::::::::::|\::::;i`ヘ::::::::\i         ,'::::::::/::::::/:/ !;;ハ::::::::|  \!;;;ハ::::::::::::::ヽ.       i:::::::/!::::::i/〒テテ ヽ::::| テテテ'!ヽ\:::::::::',        !::::/::i::::::::ハ ヒ:;:;r  ヽ! ヒ;:;r! !\::::!へハ!  V'! イi::::::/!:! ""        "".l:::ヘ:::!:|      ヽ! ヽ!::|::i>、.   、_,、_,  ,.イ:::|:::::レi::|
      |::|:::|::::::`7:.r–r 7´|:::|::::|::::::::|::|
     .|::|::::|:::;:イヽ!__/::::`>.,|::::|:::::::|::|
     |:::|::::|く\::::::!/:::::://|::::ト.:::::|::|
       _>ー-  -―∧ー- _
      , <´ : : : : : : : : : : : :|: : : : : : : :` – 、
    /  _/     : : : : :|: : :.: : : : : : : : : :\
   /:_: <:〃    /: : : /: : .:|: ∧:.:.: : : : : : : : : : ヽ
  /イ:;:;:;://: : : : : :.:/: : : :イ: : / |:;|iハ:.:.:.:. : : : : ヽ:.:.:.:>>- _
 ’  ヘ//: : : : : :;:;/: : : / |: :/  |:;|l  i:.:.:.:.: : : : : :l: : i:;:;:;:;l:;:;:;: ̄\
  /:;:/: : /: : :.:/!: :__/_|:/   |:| l  i_l: : : : : : l: :l:;:;:;:;!:;:;:;:;:;:;:;/
 <:;:;:;:/:. :/: : :.:.:i:.l: ´/  |,'`   |! l '´\l`゙: : : i : l: :l:;:;:;:;:;i:;:;:;:;/   \i: :/|: : : : :l:.:|: /   |!.    |  !   ヽ!: : :| : l: |:;:;:;:;:;:!:/        |:/-|: : : : |/不示テミ、   ! ィ=≠=z\|: :ハ |:;:;:;:;:;:;|     |i  |:. : : :|l-||! V{::::::|      ヘノ:::::::} ア'|i: i:;:;l:|t―f-´          !  li: : : :f.{ !| i ゝイj      |iゞ-イソ ' |!'|゙i、:|!:l: : |   形式的意味理論で実装で、      |:.ヽ: : |:丶i ゞ-''"      ヾ''-"  う'´|j:.:.:.! : |  おまけにProlog……      |:.:.:.:ハ:|:.:.|/! '"'    '     '"'  ィ‐ナ":.:.:/:. : |  実際に動くものを      |:.:.:.:.:|i|:.:.:! > 、   、    _ <___/:.:.:.:./|: : : |  作ったとは      |:.:.:.:.:|!: : :∨' ̄ `> 、   ィ7:;:;:;:;:;//:.:.:.:/|:|:.:.:.:.:|  結構面白いな             |:.:.:.:.:.ト、: :/    _ィ--`}‐-/:;:;:;:;:ィf/:.:.: / ヘi:.:.:.:|      |:.:.:.:.:|/ヽ/    /:;:`iー" /:;:;:;:;:;:/: : : :/   }:.:.:|          |:.:.:.:.:! ∨   /:i:;:;:;:;l  /:;:;:;:;:;:;/: : : :/    l:.:.:|      |:.:/ /    l: }ヽ:;:;:;l /:;:;:;//: : : :/     l:.:.:|      {: {  /    lヽ \:∨:;/ /: : :/      }:.:.|      |: :ヽ /     l i´ ̄`‐´ ゙̄/: :;/        }:|        /      \       /ノ  \   u. \ !?     / (●)  (●)    \  (あれ…なんだか…)     |   (__人__)    u.   |      \ u.` ⌒´      /          ____        /      \!??       /  u   ノ  \     (普通に受けがいいお?)     /      u (●)  \     |         (__人__)|      \    u   .` ⌒/          /: : : :/ : : : : : : i: : : : : :ヽ : : : : ー 、 : : \            /: : : / : : : : : : : ,イ : : : : : : :l: : : : : : : \- 、:\ .          /: : : / : /: : : : : : / |: : : : : :| : |、: : : : : : : : \ \}        .' : : :/ : /: : : : : : /  v : : : : l : |斗-: : ヽ: : : : ヘ        |: : :/ : /| : : :― x   ∨: : :∧ | ∨: : :ハ: : : : :ハ        |: :/ : /: | : : : : / `  |: : :/ j/- ∨: : :l: : : : : :|        r┴、/:ヽ| : : : /     |: :/  示旡アV : :|: :|ヽ: : |   今度のLispワークショップで        |  | : :│: : /|.     | /   ト::爿/ ハ: :|: :| ',: :|   発表しないか~?        'vーく ,x┤: / :|三≧x j/   込;リ { : | ∧ |  ∨   場所はイギリスだよ~       /   ヽ. | /: :│ ,/      '    .:・} : |/ i/         |  /⌒}:Ⅵ : :ヘ:.:.:.    ー'ーr'   /: : |         {    /´}_ム: : :≧r 、 .. _ ー ' .. </: : : |        ヽ    / }ヘ: : \\   厂}ヽ._/ | : : : | .         \   __/  \: : \\x-┴く ヽ| : : :.′          /   /ヽ     \ : ヽ \   |  |: : :/       /     {ヽ}}     ヽ: : }  \ l  |: :∧        / ̄ ̄ ̄\      / ─    ─ \     /  <○>  <○>  \.  はぁ・・・機会があれば…
    |    (__人__) し  |  (“いぎりす”って何県だっけ…)
    \    ` ⌒´    /   
    /              \

やる夫がgauche.nightに出演するそうです ~出発編~

3月 7th, 2008
           ____
       /::::::::::::::::\
      /::::::─三三─\
    /:::::::: ( ○)三(○)\  
    |::::::::::::::::::::(__人__)::::  | 眠いお!!!
     \:::::::::   |r┬-|   ,/  こんな時間に来たのはいつ以来か分からないお!!!
    ノ::::::::::::  `ー’´   \ 
  /:::::::::::::::::::::            
 |::::::::::::::::: l   
     ____     
   /      \     
  /  ─    ─\    忘れ物がないか心配だけど
/    (●)  (●) \    そもそも心配するほどもって行くものがないお
|       (__人__)    |   じゃあ、そろそろ出発するお
/     ∩ノ ⊃  /    それはともかく……
(  \ / _ノ |  |     
.\ “  /__|  |  
  \ /___ /
           ____
       /::::::::::::::::\
      /::::::─三三─\
    /:::::::: ( ○)三(○)\  
    |::::::::::::::::::::(__人__)::::  | 寒いお!!!
     \:::::::::   |r┬-|   ,/  Tシャツ1枚に長袖の薄い服を羽織っただけじゃ
    ノ::::::::::::  `ー’´   \ 京都の朝は耐えられないお!
  /:::::::::::::::::::::            室内でコートを切る必要があるお!!!
 |::::::::::::::::: l   
         ____
       /      \    お、昨日の日記に先輩からコメントがついてるお
      /  ─    ─\   (ゆとりTシャツの発案者だお) 
    /    (●)  (●) \
    |       (__人__)    | ________
     \      ` ⌒´   ,/ .| |          |   
    ノ           \ | |          |
  /´                 | |          |
 |    l                | |          |
 ヽ    -一ー_~、⌒)^),-、   | |_________|
  ヽ ____,ノγ⌒ヽ)ニニ- ̄   | |  | 
            ’ー/.:.:.:.:.:.::::/.:.:.:.:.:.:/.://.:.:.:.:.:.:.:.:.:..:.:.:.:.:.:.:.:.\
            /.:.:./.:::::::/.:.:.:.:.∨.:/ ./.:.:.:.:.:.:.:.:.:.:.:.:.:.:./:.:.:.:.:.:.:ヽ
           /.:.:.:.:/.:.::::::::/.:.:.://X   ,’.:.::.:::.:.:.:.:.:.:.:.:.:.:/ :.:.:.:.:i::.:.:.∧
.         ー–イ.:.::::::::::,’.:.:; ‘    \i.:.:.::::.:.:.:.:.:./.:.::;イ:.:.:… ;    ’,
             /.::::::::/|.:./        !.:::::.:.:.:.:.:,イ.:.::/ |:.:.:.:.:.,’:..     i
              ,’::::::,イ::::::|イ  \    |::::.:.:.:./7ーrー-|–:./.:.:.:.:..  .;
         /i:::;イ::Y.::::::/    \   |:::.:/ //  .|.:.:./.:.:.:.:.:.:.:.:./
         ’´ |//:::,’::::::/  ̄ ̄ ̄   j/       |.:/.:.:.:.::.:.:.|:./名刺の使い方は、
             //|.:::八 :::::::           ___ j/:..:.:.:::.:.:..j/ 「名刺スラッシュ!」
      __/´ ̄_) 、 |.::::::∧   ___       \     /.:.:.:.:::::::::.:.:|  と叫んで20枚ほどを
      /_: :`: . 、  )ノ |:.::;:’.j/\ i´‘′`ヽ     \ /.:.:.:::::::;イ:.:.:;’  敵に向かって
.     /_: :`: : 、: :\)’r|.:/ / :¨`r_>、   ,!  ::::::::::: , ‘:.:::::::/|::|.::/  投げれば
   ,.ノ‐ 、`: :、: :\: :ヽj/ / : : /‐- 、` ¨i´‐rー–‐/.:::::::/_,ノ:.:|/    いいんだってヴァ!
.  /    \: :\: :ヽ/.’ / : : /    .>’´: : :`ヽ/::.:::::;:イ:::/ヽ:::.:.|
 /        ヽ: : ヽ/: :i i : : ;’   /: : :;-r‐r=r-<´ |:/   \|      ____         /      \        /  ─    ─\    (さすが先輩…頼りになるお…… /    (●)  (●) \    「敵は己自身」とよくいうし、自分自身にながつければOKだお? |       (__人__)    |   これで準備もできたし……) /     ∩ノ ⊃  /     (  \ / _ノ |  |      .\ “  /__|  |     \ /___ /                    ,'⌒,ー、           _ ,,..  X                  〈∨⌒ /\__,,..  -‐ '' " _,,. ‐''´           〈\   _,,r'" 〉 // //     . ‐''"            ,ゝ `く/ /  〉 /  ∧_,. r ''" - - - -_,,.. ‐''" _,.〉 / /  . {'⌒) ∠二二> -  - - - - - -   _,.. ‐''"  _,,,.. -{(⌒)、  r'`ー''‐‐^‐'ヾ{} +  '-‐ '' "  _,,. ‐''"`ー‐ヘj^‐'   ;;    ‐ -‐   _- ちょっと東京行ってくる  - ‐_+      ;'"  ,;'' ,''   ,;゙ ‐-  ー_- ‐ ______,''___,;;"_;;__,,___________ ///////////////////////          ____         /\  /\       /( ●)  (●)\      / :::::⌒(__人__)⌒:::::\       |     |r┬-|       |       \     ` ー'´     /      /          \       | ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ |  トン    _(,,) 次回につづく   (,,)_   /  |              .|  \ /    |               .|    \     .|__________|

やる夫がgauche.nightに出演するそうです ~前日編~

3月 7th, 2008
(1/27)
      ____
     /⌒  ⌒\
   /( >)  (<)\   
  /::::::⌒(__人__)⌒::::: \    まあ、3月だしまだまだなんとかなるお!
  |    /| | | | |     |    地味に勉強すれば大丈夫なはずだお!
  \  (、`ー―’´,    /

続7・PrologでR6RS(終) ~R6RSらしさを求めて~

3月 5th, 2008

PrologでSchemeインタプリタ作り終わったよー。
R6RS(のAppendixA)にほぼ準拠してます。
ソース
(SWI-Prologで動作を確認しています)
どのあたりがR6RSなのかということで、
R6RSっぽいところを集めてみました。

続6・PrologでR6RS ~letrecのターン~

3月 4th, 2008

letrecを作りました。
多分一番長い簡約規則。

evaluate("(letrec ((fact (lambda (n) (if (eqv? n 0) 1 (* n (fact (- n 1))))))) (fact 3))").
6
Yes

これで再帰呼び出しが書けるようになりました。
あとletrec*を作って、例外を発生させる規則を書けば、
Appendix Aの仕様をほぼ満たすことになります。

ゆとりTシャツ完成予想図

続5・PrologでR6RS ~地味な話~

3月 4th, 2008

Prologで作るSchemeインタプリタですが、
R6RSの形式的意味論の仕様を大体満たすようになってきました。
ただし、入力によっては死ぬほど遅いです(dynamic-windが関わると遅い?)。
とりあえず、最近触ったのは、例外処理、算術演算、リスト操作、
eqv?, apply, call-with-valuesあたりです。どれも地味で悲しくなります。
一番華やかなのは入出力をS式でできるようにしたこと。

evaluate("(car '(a b c))").
a
Yes
evaluate("(cdr '(a b c))").
(b c)
Yes

こうすると、かなりSchemeインタプリタっぽいですね。

R6RSの例外が複雑すぎる

3月 1st, 2008

R6RS Standard Librariesを全部読むのはしんどいので、
とりあえず例外のところ(7章)を読もうと思ったら、
説明で新しい型であるレコード型の機能を使いまくっていました。
レコード型といってもただのレコードだろと思ったら、
親レコードの指定とか色々な機能があるみたいです。
子レコードが親レコードの関数を使ったり、もはやオブジェクト指向みたいでした。
といってもまあ、レコードのところ(6章)は読んでないからあまり分からないんですが。
例外処理のための手続き、構文はそれほどありませんが、
レコードが複雑すぎるせいで、例外の機能も複雑になってます。
むしろ、例外を作るためにレコード型を作った気もしました。
あと10年もすれば「Schemeの仕様は小さい」は都市伝説になってしまうのでしょうか……

はてなようせいとまなぶ Schemeの形式的意味論

2月 28th, 2008

数日前から言っていますが、はてなようせいさんが可愛いです。
あまりに可愛かったので、わけの分からないものを作ってしまいました。
はてなようせいとまなぶ Schemeの形式的意味論
昨日の夜、はてなようせいで何か作ろうと思い立ち、
今日の朝からずっと書きはじめました。
気が付いたら夜でした。

続4・PrologでR6RS ~dynamic-wind物語~

2月 28th, 2008

dynamic-windが多分できました。
「多分」と付いてるのは、あんまり試してないからです。
そもそも本物のSchemeでdynamic-windなんて使ったことがありませんし(笑)
まずは、dynamic-windの途中で脱出する例。

?- eval([store,[[hoge,0]],
[call_cc,
[lambda,[k],
[dynamic-wind,+,
[lambda,[],[k,3]],
[lambda,[],[set,hoge,789]] ]] ]], X).
X = [store, [[hoge, 789]], [values, 3]] ;
No

非常に読みづらいですが、S式に直すと、大域環境が「hoge=0」の時に、

(call/cc
(lambda (k)
(dynamic-wind +
(lambda () (k 3))
(lambda (set! hoge 789)))))
=> 3 (大域環境は「hoge=789」)

ということです。
dynamic-windを途中で脱出していますが、
第三引数であるサンクがちゃんと適用されているのが分かります(hogeに値が設定されている)。
次に、dynamic-windに再突入する例。

?- eval([store,[[cont,0],[hoge,0]],
[dynamic-wind,
[lambda,[],[set,hoge,[+,hoge,1]]],
[lambda,[],[call_cc,[lambda,[k],[set,cont,k],0]]],
+] ], X).
X = [store, [[cont, [throw, '#:G866', [begin0|...]]], [hoge, 1]], [values, 0]] ;
No
?- eval([store, [[cont, [throw, '#:G866', ... ]], [hoge, 1]], [cont,333]], X).
X = [store, [[cont, [throw, '#:G866', [begin0|...]]], [hoge, 2]], [values, 333]] ;
No

またも、死ぬほど読みにくいのでS式に直すと、大域環境が「cont=0, hoge=0」の時に

(dynamic-wind
(lambda () (set! hoge (+ hoge 1)))
(lambda () (call/cc (lambda (k) (set! cont k) 0)))
+)
=> 0 (大域環境は「cont=継続オブジェクト, hoge=1」)
(cont 333)
=> 333 (大域環境は「cont=継続オブジェクト, hoge=2」)

dynamic-windの第二引数のサンクに再突入していますが、
第一引数のサンクが適用されているのが分かります(hogeがインクリメントされている)。
本当は、もっと複雑な例も試すべきなんでしょうが、
評価をしてステップごとの結果を追うのが非常に疲れるのでこれだけで勘弁してください。
多分上手く動いていると思います。