スキームのeqv-hashtableデータ構造は、文字列であるキーを認識していないようです。次のコードでは、eqv-hashtableを作成し、新しいデータを作成しています。
(define state-hash (make-eqv-hashtable))
(hashtable-set! state-hash "S" (State "S" #f '() '()))
ただし、データがハッシュテーブルに格納されているかどうかを確認しようとすると、次のことが発生します。
(hashtable-contains? state-hash "S") ; --> #f
手順hashtable-contains?は、キー"S"が現在ハッシュテーブルにないことを示していますが、以下はそうでないことを示唆しています。
(hashtable-keys state-hash) ; --> #("S")
キーに文字列以外のもの、たとえば記号(eg 'S)を使用しても、問題はありません。文字列をキーとして使用したくない理由はありますか?