Lisp Scheme Part35
■ このスレッドは過去ログ倉庫に格納されています
0332はちみつ餃子 ◆8X2XSCHEME
2013/01/12(土) 10:46:38.06それは実装の事情と関係がある。
一般的な Scheme の実装ではオブジェクトはヒープに割当てて変数にはオブジェクトへのポインタを入れるようになってる。
eqv? は変数同士、つまりはポインタ同士の比較をするんだけど、
真偽値や文字にといった小さいオブジェクトに限ってはヒープに割当てずに変数に直接入れることが出来るので、
そのまま比較すると同値性が比較できてしまうってことになる。
一方の equal? は変数が指す先にあるオブジェクトも見て判定するわけだね。
実装面から説明しなけりゃならない仕様って格好悪い気もする。
■ このスレッドは過去ログ倉庫に格納されています