1

使用列表发明了快速而肮脏的类似哈希,即

 [ key1:val1,key2:val2, ....]

我可以得到键和值:

hl_keys(HL,Res) :- maplist(\I^K^(I = K:_),HL,Res).
hl_vals(HL,Res) :- maplist(\I^V^(I = _:V),HL,Res).

但是我如何通过 key 和 key by value 获得特定值?

4

1 回答 1

1

很容易 :

hl_val(HL,Key,Res) :- member(Key:Res,HL).
hl_key(HL,Val,Res) :- member(Res:Val,HL).

好消息是它充当双向哈希

于 2021-01-24T03:26:12.737 回答