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-03-01

世の中にONEPは必要か?

| 10:48 | 世の中にONEPは必要か? - わだばLisperになる を含むブックマーク はてなブックマーク - 世の中にONEPは必要か? - わだばLisperになる

今回のエントリもくだらないネタなのですが、ONEPは世の中に必要なのかどうか、それが無性に知りたくなりました。

ONEPはZEROPの兄弟で、1かどうかを調べるものです。

ONEPは実はLISP 1.5にも存在し、その歴史は非常に古くもうすぐ50歳にもなろうかという大物なのです。

しかし、歴史の荒波に揉まれているうちにいつのまにやら姿を消してしまいました。

調べてみたところでは、標準でonepが存在した処理系は、LISP 1.5、UCI LISP、Franz Lisp等が確認できましたが、MIT系にはどうやら存在しなかったようで、その流れを引き継いだのかCommon Lispにも存在しません。

それで、存在意義を確かめてみたいと思い立ち、(= 1 ~)はどれだけ書かれているかを調べてみました。

ソース 1との比較zerop prog2onep/zerop=全体に占める割合
Google ソースコード検索 4000 19700400 1/5 5%
ラドガース大学のPDP-10用のCL26 77 0 1/5 11.5%
MIT CADR Lispマシン 178 1055 22 1/6 7%

ここで、比較対象にprog2を選んだ理由ですが、ANSI CLに無駄だと思うものを一つ挙げよ、と言われたときに個人的に真っ先に思い浮ぶのが、prog2ということでprog2にしてみました。prog1とprognの組み合わせで、prog2は置き換え可能だし、後方互換の維持という面でも役に立ってないと思われるので…。

それはさておき、=における1との比較ですが、上記のソースでは全体の5%〜12%位だったりして意外に多いんだなと感心しました。

zerop比べても約1/6位の様子。

まとめ

ということで、以上から、ONEPは世の中に必要なんだ! ということにしておきたいと思います。

新しい処理系を作るみなさんは是非一度onep、one?、1=などの採用をご検討なさってはいかがでしょうか!