Lisp Meet Up presented by Shibuya.lisp #11 が開催されました。

11/27(水)に第11回Lisp Meet Upが開催されました。ご参加頂いた9名の皆さま、お疲れさまでした。

発表

今回は2件の発表がありました。κeenさんからは、「Makefile書けない人がmake4.0触ってみた」というタイトルで、MakefileからGuileを呼び出す機能についてのレポートしていただきました。この機能を使うにはmakeを--with-guileオプション付きでビルドし、さらにGuileをインストールして置く必要があります。Makefile中でdefineなどで定義した関数を、

$(guile S式)

という形式で外部のGuileで評価するもので、Guileの機能はフルに使えるとのことでした。

発表資料はSlideShareで、デモに用いられたソースコードはGithubで、それぞれ公開されています。

デモに用いられたソースコード

2件目の発表はkazh98さんから、「What Does R7RS Change Programming in Scheme?」と題してこのほど批准されたR7RS-smallについて、R5RSとの違いに注目した発表でした。発表者について、告知段階ではkuro_m88さんとしていましたが、残念ながら都合が悪くなったとのことでkazh98さんが代打を努めました。R7RSではRecord type, Library System, Exceptionの3点がR5RSとの大きな違いとなっているそうです。ExceptionについてはSRFI-34を取り込んで標準とされました。この他、シンボルがデフォルトでcase sensitiveになる、call-with-current-continuationの本名がcall/ccになる、引数の個数で実装を分けるcase lambdaという構文がサポートされる、といった変更があったようです。

発表資料の修正版がSlideShareにて公開されています。

なお、kuro_m88さんはmeshというR7RS-small互換処理系を実装中とのことです。

発表後、一時間ほど時間があったのでライブコーディングの時間になりました。今回のお題は与えられた浮動小数点数の列から頻度表とヒストグラムを作る、というものでした。Common Lisp版をchikuさんがコーディングしましたが、細かい仕様は進めながら決めることになり、Common Lisp版のみで時間を使いきりました。頻度表についてはFLOOR関数のoptional引数を使うことで簡便に実装され、一方ヒストグラムの方はFORMATの引数について参加者からいろいろなアイディアが出され、結果3種類が実装されました。

コードはgistで公開されています。 Common Lisp版頻度表のソースコード

懇親会

ライブコーディング後は会場近くのお店で懇親会をしました。各人のLispとの馴れ初めを 切り口に、後半はコンピュータとの馴れ初めの話になりました。

次回のMeet Upについて

次回はClojureをテーマに、12月18日(水)に開催予定です。 http://atnd.org/events/46201

Published: December 12 2013