#辞書という名前はふさわしくないかも。関連する値の束 (タプル) にある方法で制約がかかっているようなものの集合って感じ。relationだと関係モデルになって広すぎる。associationという名前を思いついたのだけれど、assoc-* という名前がalist関係で使われちゃってるのが痛い。
#シェイクスピアの時代には「辞書」がなかったと「博士と狂人」(ウィンチェスター)で読んだのですが、そのシェイクスピアの時代のなにかから取ってくるとか?
#その時代には「何かを引いて調べる」という言葉そのものが無かったそうなので。
#http://en.wikipedia.org/wiki/A_Dictionary_of_the_English_Language によれば最初のラテン語-英語辞書(というか単語帳?)は1538年だそうだけど、単語に対して語義を当てる形式は1604年。本格的なやつは1755年か。しかし今ここで問題にしているのは単語帳レベルの話だからなあ。 #多値の「辞書」なのでシソーラスかしら?とか。シェイクスピアの時代にはシソーラスはあったそうです。
#シェークスピアは古典の引用をするとき、トマス・クーパーという人物が編纂した専門的な『シソーラス』を頻繁に利用したと考えられている。(「博士と狂人」文庫版 p.126)
#そう、Thesaurusの方が先なんですよね。けれどもthesaurusからイメージするものはノードとそれを結ぶエッジのグラフであって、今みたいにn個の値の直積ではないですね。やっぱりタプルの特殊例と考える方向が正しいように思います。
#gauche のダウンロードページ (http://practical-scheme.net/gauche/download-j.html) に書いてある git clone のリポジトリ指定は git@github.com:shirok/Gauche.git より git://github.com/shirok/Gauche.git のほうがいいんじゃないでしょうか。 #あ、そうか。git@git...って開発者用でしたっけ。直しときます。
#はい、前者だと ssh access になりました
#辞書以前のcrib sheet(カンニングペーパー)ということで、cribとか。
#さて、r7rsのモジュール関連構文をサポートするための部品は揃っているんだけれど、importをどうしようかなあ。r7rsのimportはGaucheのuseにほぼ相当して、Gaucheのuseはrequire+Gaucheのimport、という明確な意味づけがある。選択肢は、(1)Gaucheのimportを拡張してr7rsのimportの動作もさせる。(2)r7rs:importをGauche:importとは別につくる。
#内部構造的には(2)の方が綺麗だけど、使う立場からすると混乱するし、「特に何もしなくてもr7rsコンパチ」になるためにはimportがデフォルトで使えなくてはならないから、(1)にするしかないか…
#そうすると、importとuseの違いはほぼ「構文の違いだけ」ってことになる。(但し互換性のために、importは既に指定名のモジュールがメモリ上に存在すればrequireを行わない。useは必ずrequireを試みる)
#あーでも初期状態でのグローバル束縛が違うから、Gaucheモードとr7rsモードは結局分けないとだめかな。
#(define-method call-with-iterator ((collection <muti-collection> proc :key start))
(error "~aが実装されていない" __define__ ) )
#のように、__define__という特殊変数が外側のdefineのソース情報(&symbol)を参照する、というような機能ですけど、これはすでにあるのでしょうか。
#それとも、なにか勘違いな思いつきでしたでしょうか?
#括弧がつけば、ソース情報がついてくるということだったので、ひょっとしたら可能なのではないかなと思ってしまったのです。
#んー、その情報はコンパイラ内部では持ってるけど、ユーザコードからはまだアクセス可能になってないですね。
#あと「現在defineされている式」を常に確定するのはわりと厄介なので、あったとしてもその情報が必ず取れるとは限らないです。define自体がマクロで生成される場合とか。
#そうでしたか。ありがとうございます。