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 |: :∧
/ ̄ ̄ ̄\
/ ─ ─ \
/ <○> <○> \. はぁ・・・機会があれば…
| (__人__) し | (“いぎりす”って何県だっけ…)
\ ` ⌒´ /
/ \
Posted in 雑記 | 5 Comments »
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┬-| |
\ ` ー'´ /
/ \
| ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ | トン
_(,,) 次回につづく (,,)_
/ | .| \
/ | .| \
.|__________|
Posted in 雑記 | No Comments »
3月 7th, 2008
(1/27)
____
/⌒ ⌒\
/( >) (<)\
/::::::⌒(__人__)⌒::::: \ まあ、3月だしまだまだなんとかなるお!
| /| | | | | | 地味に勉強すれば大丈夫なはずだお!
\ (、`ー―’´, /
Posted in 雑記 | 1 Comment »
3月 5th, 2008
PrologでSchemeインタプリタ作り終わったよー。
R6RS(のAppendixA)にほぼ準拠してます。
ソース
(SWI-Prologで動作を確認しています)
どのあたりがR6RSなのかということで、
R6RSっぽいところを集めてみました。
Posted in プログラミング | No Comments »
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シャツ完成予想図
Posted in プログラミング | No Comments »
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インタプリタっぽいですね。
Posted in プログラミング | No Comments »
3月 1st, 2008
R6RS Standard Librariesを全部読むのはしんどいので、
とりあえず例外のところ(7章)を読もうと思ったら、
説明で新しい型であるレコード型の機能を使いまくっていました。
レコード型といってもただのレコードだろと思ったら、
親レコードの指定とか色々な機能があるみたいです。
子レコードが親レコードの関数を使ったり、もはやオブジェクト指向みたいでした。
といってもまあ、レコードのところ(6章)は読んでないからあまり分からないんですが。
例外処理のための手続き、構文はそれほどありませんが、
レコードが複雑すぎるせいで、例外の機能も複雑になってます。
むしろ、例外を作るためにレコード型を作った気もしました。
あと10年もすれば「Schemeの仕様は小さい」は都市伝説になってしまうのでしょうか……
Posted in プログラミング | No Comments »
2月 28th, 2008
数日前から言っていますが、はてなようせいさんが可愛いです。
あまりに可愛かったので、わけの分からないものを作ってしまいました。
はてなようせいとまなぶ Schemeの形式的意味論
昨日の夜、はてなようせいで何か作ろうと思い立ち、
今日の朝からずっと書きはじめました。
気が付いたら夜でした。
Posted in プログラミング | No Comments »
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がインクリメントされている)。
本当は、もっと複雑な例も試すべきなんでしょうが、
評価をしてステップごとの結果を追うのが非常に疲れるのでこれだけで勘弁してください。
多分上手く動いていると思います。
Posted in プログラミング | No Comments »