or と 多値の評価
2007/07/14
不思議な現象を発見しました。
下のように1つだけの多値(multiple values)を or で評価すると、結果は、1,2(多値)となりました。
(or (values 1 2)) 1 2
しかし、2つの多値を or で評価すると、結果は、1 になりました。
(or (values 1 2) (values 3 4)) 1
clispでもxyzzyでも同様でした。
hyperspec で or を見ると、最後の要素以外は、primary value(最初の値)を返す仕様のようでした。
(or nil (values 1 2)) 1 2
んー、嵌った。