我正在使用hash-set
程序在hash?
中设置值。似乎要求散列为immutable?
。到目前为止,我找不到将可变哈希转换为不可变哈希的更好方法,而不是以下方法:
(make-immutable-hash(hash-> list 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)))))))
为了更新它,有没有更好的方法将可变哈希转换为不可变哈希?或者我应该采取不同的方式?
答案 0 :(得分:2)
如果哈希值是可变的,您可以使用hash-set!
直接修改它:
(hash-set! yaml-hash <key> <new-value>)
以上内容将原位更改哈希的值,而hash-set
将返回 new 哈希,您必须在其他地方存储或重新分配。