#:g1: MacLISPでは表示と入力の基数にローマ数字が設定できた

Posted 2008-04-07 10:49:00 GMT

前回のPAIP勉強会の後のちょっとした飲み会でも話のネタにしたのですが、MacLISPは、システムの基数にローマ数字を指定できました。
非常に馬鹿っぽくて大好きなので、これをネタに、またpartty.orgでキャプチャーしてみました。
※partty.org消滅によりYouTubeで動画再作成(2018-06-20)

どういうことかというと、MacLISPでは、表示用の基数をbase、入力用の基数をibaseで指定可能で標準は、8(8進数)です。
ここに、romanという指定をすると、iや、mcm等が、1や、1900として扱われることになります。
ちなみに、入力と表示は分かれているので、入力と表示で一致しないこともあります。
この機能は単にハックバリュー(つまり、ただ作ってみたかったから作っただけ)の為に追加されたとのことで、ジャーゴンファイルの(http://catb.org/~esr/jargon/html/H/hack-value.html)の項目にも説明があります。
基数にローマ数字を設定した場合、iや、xが数字になるので、変数の扱いには注意が必要です。また、MacLISPのマニュアルによると、コンパイルの時の挙動も予測できないものになりがちなので基数にローマ数字を設定するな、というような注意書きがあったりします。
ちなみに、formatのローマ数字のサポート機能も、この基数をローマ数字にするのもGuy Steel氏の仕業だったと記憶しているのですが、改めて資料を探しても見付かりませんでした…。夏休みに実装した、ってのをどっかで読んだ筈なんですが、詳細を知ってる方がいたら教えて下さい…。
なんにしろ、注意書きを書くことはあっても、こんな機能を削除しないというMacLISPは素晴しいですね。

comments powered by Disqus