generic な hash-table
Mosh 用に R6RS の generic な hash-table を実装中。
実装といっても hash-table コアは例のごとく ext/hash_map などに丸投げして間をうまくつないでやるだけ。
それにしても generic 版ってあまり使わなそうだな。
string=? とか良くありがちなものに対してうまくうごくものがあれば大半の用途では十分な気がしなくもない。
追記
こういうのが動くようになった。
hash-function と equivalence-function を指定した hash-table が作れるように。
(let1 ht (make-hashtable string-hash string=?) (hashtable-set! ht "my" "apple") (hashtable-set! ht "our" "water") (hashtable-ref ht "my")) ; => "apple"