Racket是否有双向散列映射?
也就是说,哈希映射可以在恒定时间内,给一个键并查找值,或者给出值并查找键?我很高兴看起来像这样的API:
#lang racket
(define my-map (bidirectional-hash '(key1 val1) '(key2 val2)))
(bidirectional-hash-ref my-map 'key 'key1) ; => val1
(bidirectional-hash-ref my-map 'val 'val2) ; => key2
Run Code Online (Sandbox Code Playgroud)
符号key并val告诉哈希映射它被赋予val,并寻找一个键,或给一个键,并寻找一个val.在这两种情况下,我希望在恒定的O(1)时间内完成.
我知道你可以通过使用两个彼此反转的哈希表来实现这一点,但我想要一个构建在Racket(或现有库)中的结构.