2009-11-30 86 views
1

如果我做了:PLT计划:评估一个字符串或字符串列表?

(regexp-split (regexp " ") "look tom") 

我得到

("look" "tom") 

这很好,但我不能说EVAL。如果我试图(eval-string)它[它在mzlib/string里面],它会出错,说'tom'没有被定义。我想这是试图运行:

(look tom) 

哪一个是不正确的。任何提示在这里?

回答

1

目前还不清楚你正在寻找什么功能。

你们是不是要运行:

(look) 
(tom) 

如果外观和汤姆被定义为功能,你可以使用类似:

(define (look) 1) 
(define (tom) 1) 

(map (lambda (s) (apply (eval (string->symbol s)) '())) '("look" "tom")) 

或者,如果外观和汤姆是变量,要更换他们与他们的价值观:

(define look 1) 
(define tom 1) 

(map (lambda (s) (eval (string->symbol s))) '("look" "tom")) 

如果你想评估(看tom)那么:

(define (look arg) arg) 
(define tom 'arg) 

(eval (map string->symbol '("look" "tom"))) 

此外,如果您还标记了发布方案,您可能会在现在之前得到对您问题的回复。