1

如果我这样做:

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

我明白了

("look" "tom")

这很好,但我无法评估。如果我尝试(eval-string)它[在 mzlib/string 中],它会出错,说没有定义'tom'。我猜它正在尝试运行:

(look tom)

这也不正确。这里有什么提示吗?

4

1 回答 1

1

目前尚不清楚您正在寻找什么功能。

您是否尝试运行:

(look)
(tom)

如果 look 和 tom 被定义为函数,你可以使用类似的东西:

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

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

或者如果 look 和 tom 是变量,并且您想用它们的值替换它们:

(define look 1)
(define tom 1)

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

如果您正在尝试评估(看汤姆),那么:

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

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

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

于 2009-12-07T07:21:03.943 回答