如何从输入中读取过程(lambda)?

时间:2019-01-15 06:11:19

标签: scheme racket

我想输入lambda表达式,然后该函数使用一些参数对其进行求值。像(read)一样吗?但是我不希望我的输入变成字符串或符号。

(define (foo)
  (define my-func (something like "read"?))
  (display (my-func 2)))

所以当我说(lambda (x) (add1 x))时返回3。

1 个答案:

答案 0 :(得分:3)

您可以使用eval来评估read将生成的符号表示形式。

(define (foo)
  (define ns (make-base-namespace))
  (define my-func (eval (read) ns))
  (display (my-func 2)))