shibuya.lisp #2

面白かった。
以下感想だかメモだか良く分からない何か。

会場着

受付で配られた名札がCLのREPLでCLOSなコードだった。

 * (defperson
   :type :Guest :name
   "youz")
#<person ...>

 * (attend-party-p *)
 t
 
    #|Shibuya.lisp Technical Talk #2|#

懇親会で、構造体ですねーとか喋った気がする。これだから自称Lisperは。ごめんなさいごめんなさい。

Mosh internal (higeponさん)

Moshの成長の歩み、開発手法、最適化技法など。いつの間にかロゴが。
素人目にはGauche, Ypsilonとの開発競争が少年誌的展開に見えてもう眺めてるだけで楽しい感じなんだけど、「Lisp処理系つくったことある人」との問いに大勢の人が挙手。
許されるのは小学生までか…

Common Lisp quote unquote (黒田さん)

MVPだと思った。凄く貴重な話が聞けた。どうすりゃいいかな。
あとこの辺のより丁寧な話とか。日本語とモンゴル語。ちょっとググってみたけど
http://homepage1.nifty.com/asimura/bayidal.html
ホントにヤバいんだ…

R6RS Schemeの実装、syntax-caseなどについて (藤田さん)

実装について恐ろしく濃い話。
デモヌルヌル。fps凄いことになっててフイタ。
Scheme流のゲームシステムの書き方の話とかも聞いてみたい。
ArcChallenge見た時に、継続使うとゲームも全然違う書き方できそうだなーと思ったんだけど実際どこまでやるんだろう。

私がLispでプログラムを書く理由 (和田先生)

凄く楽しそうに話されるので聞いててこっちもニヤニヤしてくる。
多面体描画道楽を見て自分が子供の頃ハマっていた布施知子さんの本を思いだす。ググってみたら新しい本が沢山出てた。多面体の話はまた別ポストに書こう。

Lightning Talks

  • SchemeBluetoothスタックを書く(mjtさん)
    • Skymoshが気になりすぎる
  • FUSEでS式ファイルシステム (gemmaさん)
    • ネタっぽく見せるプレゼンだったけど実際便利な場面あるよなアレ…
  • Lisperは怠け者の夢は見ないの?(山下伸夫さん)
    • Dr.SchemeがまさにLazySっぽく使えるという話を懇親会でh_iwkさんに聞いた。要チェック。
  • Cyanの現状と、これから(林 拓人さん)
    • プログラムの勉強をするためしばらく開発は止まるとのこと。
    • ループとかの基本的な構文もCyan自身で定義されていて面白いからinitフォルダ下のソースファイルを見ると良いよ! と懇親会で周りの人に話しておいた。
    • 直接お話できて嬉しかったです。
  • cl-irregsexp(John Fremlinさん)
    • irregsexpは何て読むのかなと思ってたら作者本人からして読みあぐねていた。良い名前募集中。
    • 正規表現よりは記述が長くなるけど、凄いスピード。
    • 長くなるっていっても下手すればesolangと言われそうな正規表現が分かりやすいS式で書けるんだからむしろメリットとも取れそう。
  • 流行るLisp用Webフレームワーク(Gauche on Railsから学んだ事)(吉田裕美さん)
    • ブクマだけして連載読んでなかった。読まねば
  • よりよいLispプログラムを目指して(冬)(yharaさん)
    • BiwaScheme製プレゼンツール
    • 平行四辺形で書け!!
    • 評価プログラムがまさかのUnbabel
    • esolang本にサインもらった。ありがとうございました。

懇親会

  • すぐ左の島がごっつかった。
  • Perlの人やらRubyの人やら色々な方がいて色々と話を聞けた。
  • esolang本の販促。
  • ハイパー自称xyzzyerモード。

まとまんない

なんかコード書こう。

リーダーマクロ

色々感想書く前に、忘れないうちに酒のネタ。
全世界でのべ100万回くらい書かれてそう。

(asdf:oos 'asdf:load-op :cl-ppcre)

(set-macro-character #\{
  #'(lambda (s c)
      (let ((args (cl-ppcre:split " " (string-upcase (symbol-name (read s)))))
	    (body (read-delimited-list #\} s t)))
	`(lambda ,(mapcar #'(lambda (sym) (intern sym)) args)
          ,@body))))

({|a b|(+ (* a a) (* b b))} 2 4)
;=> 20

関連:最高にキモい Lisp コードを書いてみよう with 100 行リーダーマクロ

以前xyzzyのscratchでちょこっとmapcとか使いたい時にタイプ量減らせて良いかなと思ってやってみたけど微妙だった。
引き数のリストを前に持ってくれば、と思ったけどやってみたらどうしようもなく気持ちわるかった。