Схема PLT: оценить строку или список строк? - PullRequest
1 голос
/ 30 ноября 2009

Если я сделаю:

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

Я получаю

("look" "tom")

Что хорошо, но я не могу это оценить. Если я пытаюсь (eval-string) его [который находится внутри mzlib / string], он выдает ошибку, говоря, что 'Tom' не определен. Я думаю, он пытается запустить:

(look tom)

Что тоже не правильно. Любые советы здесь?

1 Ответ

1 голос
/ 07 декабря 2009

Неясно, какую функциональность вы ищете.

Вы пытаетесь запустить:

(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")))

Также вы, вероятно, получили бы ответ на свой вопрос до сих пор, если бы вы также пометили схему сообщений.

...