如何使用字符串引用符号?

时间:2011-08-15 23:44:18

标签: scheme racket

以下代码将生成#f#t

1: (define dict (hash 1 'a 2 'b ))
2: (hash? (string->symbol "dict"))
3: (symbol? (string->symbol "dict"))

基本上,我希望字符串"dict"将变为第1行中定义的哈希dict。我该怎么做?

1 个答案:

答案 0 :(得分:2)

最简单的方法是eval string->symbol的结果,如下所示:

> (define dict 5)
> (eval (string->symbol "dict"))
5

然而,让eval参与其中几乎从来都不是正确的事情。将字符串与值关联的更好方法是使用哈希表作为@yi_H建议:

> (define ht (make-hash))
> (hash-set! ht "dict" 5)
> (hash-ref ht "dict")
5

更新:我最初错过了[racket]标记;该示例现在应该与#lang racket一起使用。