2007年12月02日

twitterのとあるクラスタで生駒ブームが来たのをきっかけに、生駒で読書会を開催しました。

http://cotocoto.jp/event/2996

http://www.lingr.com/room/gbgOsk9L9CX/archives/2007/12/02

※第2回(3/2)のご案内はこちら

生駒でやるという事自体が壮大なネタであるにもかかわらず、予想を大幅に上回る6名が参加。

わざわざ県外から来られたギークの方々も。

LiveCoding#5の余韻が残る翌日の日曜日に設定した結果、2次会で@cuzic邸に泊まったujiとyhにとっては事実上の3次会で、ちょっとお疲れのようでした。昨日東京からLiveCodingに参加していたdankogaiさんは今朝早く帰ってしまったそうで残念です。



読書会・勉強会にはいくつか参加したことがありますが、主催は今回が初めてです。

会場(公民館)の予約、お菓子(うなぎパイほか)や飲み物の買い出し、名札代わりに使う画用紙とマジック(LiveCodingに出た人は昨日の名札でOK)など。あと延長ケーブル。

Kanasan.JSとは違い、ネット環境もプロジェクタもありません。アドエスでダイヤルアップした64kbpsだけが頼りなのでustream中継もなしです。

きょうのお題

> R. Kent Dybvigの「Three Implementation Models for Scheme (1987)」(3imp.pdf) に出てくるコードを写経してGaucheで動かしてみよう!

当初3章からのつもりでしたが、yharaさんの薦めで2章の最後、p.40のコードから写すことにしました。

  • record, record-case, recurの定義が必要。yharaさんの定義ファイルを回す。
  • → define-syntaxの書き方講座(by @y12n)
  • "env.scm"がない、とか言われる → extendは名前を変えないとダメ。
  • (use gauche.test) でテストを書こう(by @y12n)
  • lambdaのbodyに式を1つしか書けないので、set!のテストが難しい(けど頑張った)
  • 以下のテストコード(by @naoya_t)を配布して、みんなのテストが通ったところで次へ。

^(use gauche.test)

^(test-start "Chapter 2")

^(test-section "page 40")

^(test* "symbol?" 2 (exec 'b '(((a b c) . (1 2 3)))))

^(test* "quote" 'hello (meta '(quote hello)))

^(test* "lambda" 3 (meta '((lambda (x) x) 3)))

^(test* "if" 5 (meta '(if #t 5 0)))

^(test* "set!" 7 (meta '((lambda (t) ((lambda (x) t) (set! t 7))) 0)))

^(test* "call/cc" 11 (meta '(((call/cc (lambda (c) c)) (lambda (x) x)) 11)))

^(test* "pair:else?" 13 (meta '((lambda (f x) (f x)) (lambda (x) x) 13)))

^(test* "else?" 17 (meta 17))

^(test-end)

↓↓↓↓↓

^% gosh p41.scm

^Testing Chapter 2 ...

^----------------------------------------------------------------------

^test symbol?, expects 2 ==> ok

^test quote, expects hello ==> ok

^test lambda, expects 3 ==> ok

^test if, expects 5 ==> ok

^test set!, expects 7 ==> ok

^test call/cc, expects 11 ==> ok

^test pair:else?, expects 13 ==> ok

^test else?, expects 17 ==> ok

^passed.

伝説のtwittererのご指摘どおり、正しく動けば素数が並ぶようにテストを書いてみました。

  • なぜか猫の写真(by @ujihisa)も回される。

&ref(http://ntzone.info/misc/ujineko.jpg,400,300)

続いて3章p.56のコードの写経。

compileしてフレームが生成されるところまでは皆さん確認できたようですが、テストまでは出来ず時間切れとなり残念でした。

しかし、この読書会で6人のScheme実装者を世に送り出すことができました。(yharaさんは既にBiwaSchemeを作られていますが)

今回は、壮大なネタにお付き合い頂きありがとうございました。>総勢6名の豪華な参加者の皆様

第2回があるかどうかは未定ですが・・・(要望があればいつでもやります→開催決定!3/2@生駒市東地区公民館(図書会館内)



(17:30)

トラックバックURL

この記事へのトラックバック

1. 生駒読書会#1  [ Greenbear Diary ]   2007年12月04日 22:10
紫ログ:生駒読書会#1開催 - livedoor Blog(ブログ) 日曜日に生駒に行ってきましたよ。てか関東からも人が来るとかwww生駒すげえwww Scheme使いとSchemeビギナーが半々だったので、3章からやると意味不明になるかな…と思って 2章の最後から始めることを提案したん...

この記事にコメントする

名前:
URL:
  情報を記憶: 評価: 顔