Hatena::Groupcadr

わだばLisperになる このページをアンテナに追加 RSSフィード

2004 | 12 |
2005 | 01 | 02 | 07 | 10 | 11 |
2006 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2007 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2008 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2009 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2010 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2011 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 11 |

2008-12-30

+foo+ vs $foo

| 13:40 |  +foo+ vs $foo - わだばLisperになる を含むブックマーク はてなブックマーク -  +foo+ vs $foo - わだばLisperになる

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スタイルで行こうかと思います!(ここにこだわってる人もいないと思いますが)