2017-04-17 90 views
0

我正在使用過程hash-set來設置hash?中的值。它似乎需要散列爲immutable?。到目前爲止,我無法找到一個更好的辦法來改變一個可變的散列成不可變的哈希比下面球衣可變哈希值到不可變哈希值

(化妝不可變的哈希(散列>列表myhash))

散列是一些yaml,我正在從一個文件讀取和yaml模塊給了我一個可變的散列。例如,我有以下代碼:

(hash-set yaml-hash 
       "content" 
       (make-immutable-hash 
       (hash->list 
        (my-hash-map content-hash 
           (lambda (key value) 
           (cons key 
             (markdown-to-html value))))))) 

有沒有更好的方式來改變一個可變的散列成不可變的一個,用於更新它的目的是什麼?或者我應該採取不同的方式?

回答

2

如果哈希是可變的,首先,你可以直接使用hash-set!修改:

(hash-set! yaml-hash <key> <new-value>) 

以上將改變就地哈希值,而hash-set將返回一個哈希,您必須在其他地方存儲或重新分配。