我在Racket中是一个新手,我尝试做其他语言(例如将字符串转换为变量名)的其他语言非常简单的事情。就像是:
#lang racket
(define t0 3)
(display t0) ; It outputs 3
(define (symbol? (string->symbol "t1")) 2 )
(display t1) ; It would output 2, however it throws an error :(
有没有一种方法可以将字符串转换为标识符?因为我需要动态地从字符串定义变量名。
确实,soegaard哈希表是一个非常好的解决方案,下面是一个示例:
#lang racket
(define ht (make-hash))
(define sx "x")
(define sy "y")
(define sr "r")
(hash-set! ht sx 2)
(hash-set! ht sy 3)
(define r (+ (hash-ref ht sx) (hash-ref ht sy))) ;do calculation (+ 2 3)
(hash-set! ht sr r)
(hash-ref ht sr) ; it will output 5
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句