2008-12-30
+foo+ vs $foo
Common Lispでは、defconstantで宣言したものには、+foo+のように変数名に+を付けるのが慣習とか言われています。
しかし、全くの個人的な趣味なのですが、自分は、+foo+は見た目が嫌いで$fooだったら良いのになとか良く思っていました。
$foo等で定数を表わすのは、Dylanでは標準なのですが、Schemeでもたまに見掛けますし、CLでもたまに見掛けます。
$fooは、どこが発祥かは良く分からないのですが、発祥といえば、+foo+も割と謎なのです。
そもそも、CLに標準で用意されている定数は、pi、most-positive-fixnumのように+は付いておらず、また古いソースには+foo+という表現は見当たらないので、+foo+は比較的新しい表現なんじゃないかと思っています。HyperSpecや、CLtLにもその表現は見当らず、古い処理系では、*foo*と書いてることもあったりします。ちなみに強いてCL標準の表現規則性を挙げれば、pi以外の定数はやたら変数名が長い、位だと思います。
というわけで+foo+否定派の自分は現状をリサーチすべくGoogle code searchで$fooと+foo+を検索して数を比較してみました。
検索キーワードは、
lang:lisp defconstant\ \$ lang:lisp defconstant\ \+
です。結果は、
$foo → 390 +foo+ → 3000
なんと予想より$fooも使われているではないですか。
ということで、個人的に+foo+は大嫌いなので$fooスタイルで行こうかと思います!(ここにこだわってる人もいないと思いますが)
■
今年一年をふりかえる
年末だけに色々まとめエントリが出たりしています。
自分も真似をして、引きこもった今年一年のエントリを眺めて一体自分は何をしていたのかを確認してみることにしましたが、なんだかだらだら列記しただけになりました。
1月
前年から引き続き引きこもり
- 今年は、LISP50生誕50年ということで、1月1日にdoukaku.orgにLISP 1.5のコードを投稿。
- 受けるかと思ったら全然受けませんでした。そういえば、今年は、LISP 1.5で色々書いてみようとか思ってました。(思っただけ)
- Arcが発表真近らしいということで、2001年の時点でのArcのアイディアをCLで真似てみました。
- 実際にArcが発表されてみると、2001年の時点のアイディアそのままのところが多かったのが意外でした。
- Practical Common Lispを読んでました。
- 途中で翻訳が出ると聞いてやめました(´▽`*)
- CLではどんなライブラリがあるのか知る機会が少ないということで、ライブラリ紹介をして行こうと思い、そういうエントリを何回か書きました。
- やる気切れ
- TI-Explorer等のLispマシンのエミュレータを紹介して行こうと思っていました。
- もっと紹介して行きたいです。
- LISPの歴史的なところを紹介して行こうと思っていました。
- もっと紹介して行きたいです。
- LISPの基本はやはりリスト操作だと思うのですが、L-99前半はリスト処理の問題が多いのでお勧め記事を書いたりしてました。
- *Lispをいじり始めました。
- (多分)Richard Gabriel氏の末尾再帰的に書いたコードをループに変換するアイディアを紹介してみてました。
- これは、Let Over Lambdaでも同じアイディアが載ってたりして面白いなと思います。
- Arcが公開されたのでどう書くorgに早速投稿したりしました
2月
- Arcの手習いということで、L-99を再開。
- Lispならではのアイディアを見付けたら紹介して行こうと思い Lisperのたのしみ というとかの続きもの企画しました。
- ネタ切れ。
- S式だった頃のDylanのマニュアルを発見し喜んでいました。
- LISPの歴史的なところを紹介してました。
- hayamizさんが、higeponさんと私に会って話がしてみたいというエントリを書いたことがきっかけで、Gauche.night開催に合せて皆で集まることになり、Gauche.nightに行ってみることにしました。
- ぶっちゃけ引きこもりだけにGauche.nightには行く気はなかったのですが、折角なので行くことしたのでした。この後の展開を考えると、hayamizさんが集まりたいと言い出さなければ、自分は、Shibuya.lispに参加してなかったのかもしれません。人生とは不思議なものです。
- 3-LISPのリフレクションに興味を持ち始めたようです。
- Utilispを触ったりしてました。
- 生活環境をできるだけLispマシンに近付けようとしはじめてました。
- はてな日記をSLIMEから更新するようになった位で挫折。
3月
- 昔のLISPのソースコードの統計を取ってonep(1と比較するための専用関数)の存在意義を問いかけてみていました。
- Gauche Nightで色々な方に会ってお話できました。
- ひきこもりで恐らく1年位まともに人と会話してなかっただけに、すぐに声が涸れて声にならない状態になりました(笑) この後にLISP系の方々と交流することになるきっかけになった気もします。
- 古いものから新しいLISPのソースコードを比較してコーディングスタイルを比較してみたりしてました。
- 「プログラミングGauche」をCLで学んで行こうという企画を開始しました。
- しかし停滞中
- 一人でHackathonしてみました。
- Hackathonという名前を付けると一人だと予想以上に寂しく感じることが分かりました。
4月
5月
6月
- CLについて情報交換できないものかと思いCLのメーリングリストとか作りました。
- ちなみに未だにあんまり活溌ではありません。
- 何故かループ用の構文に熱中していました。loopを使うことをメインにL-99の問題を解いたりしていました。
- 多分、L-99の前半40問位をloopを使って書けば、loopも使えるようになるんじゃないかと思いますので、loopを克服したいという方にはお勧めです。
7月
- 引き続きループ用の構文に熱中していて、ITERATE、SERIESでL-99をやったりしてました。
- この辺から勉強会に集まってくれる方も定着してもらえたようです。
- 実践Common Lispが発売になりました。
- 発売後もっとCLの波がどっかんどっかん来ると思っていたのですが、どっかんどっかんとまでは行かなかったようです。でも、CLで何か書くならば、この1冊をちゃんとやれば、かなりできるようになると思いますので、実践Common Lispはお勧めです。必読です。ちなみに、CL勉強会でも実践Common Lispを読んでいますので良かったら参加してみて下さい。
8月
- 勉強会に力を入れていたためか、夏バテか、ブログエントリは減り、勉強会の告知を反省ログだけという感じでした。
9月
- Let Over Lambdaをはてなハイクで読んで行こう、とか言い始めました。(しかし頓挫)
- ANSI Common Lisp、On Lisp、Successful Lispも序でにハイク!とかとか言い出しました。(しかし頓挫)
- JLUGのサイトが更新されていないので、ハブサイトとしてリニューアルされたら面白いのではないかと考え、JLUG事務局に問合せてみたりしました。
- 活動は停滞しているとのこと。
- Shibuya.lispが発足しました。
- EusLispを知ったので試したりしてました。
- Clojureに熱中し始めました。
- Shibuya.lispの準備が忙しいのか、CL勉強会の気力が減少していた様子。
- 何をとち狂ったのか、Let Over Lambda、PAIP、Object Oriented Programming in Common Lisp、AMOPをAmazonでまとめて買ってしまいました。
- 未だにPAIPは1ページも読んでません。
10月
- CLでは、デザインパターンはどう実現されるのかを試し始めました。
- Let Over Lambda読了。変態な本だなと思いました。
- Shibuya.lisp TT#1が開催されました。
- 発起人のくせに懇親会に参加しなかったので、Gauche.nightのように色々な方とお会いして話すということはありませんでした(^^;
- LISP系言語MDLのmapfをCLで書いてみるお題とか出してみてました。
11月
- AMOPセミナーの為にObject Oriented Programming in Common Lisp読了。
- CLOS入門には必ず読むべきじゃないかと思いました。AMOP読了は、セミナーには間に合わず、というより未だに読み終らず。
- デザインパターンに熱中している様子。
- Shibuya.lisp開催で疲れたのか、CL勉強会でやる気とネタ切れ
- デザインパターンはOOP気味なのでCLOSに熱中し始めました。
- 数理システムさんのAMOPセミナーに参加しました。
- AMOPセミナーの影響で、MOP、MOP言い始めました。
- しかし、現状具体的には何も作れません(´▽`*)
- 逆引きLispが作りたいと言い始め、逆引きCommon Lisp、逆引きScheme立ち上げました。
- 今後利用者が増えて育って行くと良いなと思います。
12月
- 逆引きCL/SchemeのMLが欲しいとか言い出して、勝手に作りました。
- 最初はさっぱりだったデザインパターンもコードを書いてるうちに何となく雰囲気は掴めてきた様子でデザインパターンのことばかり書いていました。
- CL勉強会ももっと盛り上がって欲しいということで、とりあえず毎週開催だけはして様子を伺うことにしました。
まとめ
どうやら今年前半は一人で色々実験、後半はコミュニティ的活動で色々という感じでしたが、個人的には自分は一人で色々やってた方が面白いことをするのかなと思いました。
LISPの歴史的な考察等ももう少し深追いしたいところです。
コミュニティといえば、LISP系のコミュニティはまだまだ参加者のコミットが足らない状況ではないかと思えました。
コミットが足らないというよりも、まず人数が足らないようで如何ともし難いところはあります。
それだけに、何かすればすぐ目立てますので目立ちたい方にはLISP系コミュニティは穴場だと思いますので征服してみては如何でしょうか(笑)
来年への展望
引きこもりがもう維持できないのでどうにかする必要があり来年生きてるのかも良く分からないのですが、
と実力的に無謀なことを考えています。
それと、Shibuya.lispは、2月の開催は決定していますが、今のところ年3回位のペースで考えられているので、6月、10月位にも開催できたら良いなと思います。その頃コミットできてるのかは謎ですが(笑)
■