Gauche > Archives > 2017/10/23

2017/10/23 07:05:17 UTC齊藤
#
ところで Gauche のドキュメントで eq? や eqv? の項目を見ていて思ったんですけど、キーワードを比較したときの挙動が読み取れない気がします。 常識的に考えてキーワードを比較したときの扱いはシンボルと全く同じだけどシンボルとは別の名前空間に属するものという理解なんですが、 eq? や eqv? にそれを (今後も含めて) 期待してもよいのでしょうか?
2017/10/23 07:09:11 UTCshiro
#
あっ確かに書いてないですね。eq?に関する振る舞いはシンボルと同じ、という定義にします。いずれシンボルに統合しますし。
2017/10/23 16:46:25 UTCg000001
#
たまたま見付けたのですが、重箱の隅ながら一応報告してみます
Gaucheだと(assoc 2 '((1 . 1) 5 (2 . 2)))はエラーにはならないようですが、ソースをみると、ペアじゃないなら無視するとのことでした。
https://github.com/shirok/Gauche/blob/e55d69ac9443c59fa43c3b5314156a5be935e939/src/list.c#L505 
ただ、ドキュメントに
[R7RS][SRFI-1] listの各要素はペアでなければなりません。
https://practical-scheme.net/gauche/man/gauche-refj/peatorisuto.html#index-assoc
とありますが、(use srfi-1)してもgosh -r7 してもエラーにはならないので若干ドキュメントと動作に整合性がないかなと思った次第です。
#
以上、既知の問題/FAQでしたらすいません🙇
2017/10/23 19:59:51 UTCshiro
#
ああなるほど。R7RS的には「エラー」=「処理系の好きなようにして」なので合法なんですが、ドキュメントの表記が紛らわしいですね。