Scheme 使用列表元素的操作

Scheme 使用列表元素的操作,scheme,racket,Scheme,Racket,我有一张这样的表格,+23。其中,第一个字符是可应用于其他两个元素的数学符号。我似乎无法让它做手术。对于上一个示例,我想返回5 我试过这个: ((car '(+ 2 3)) (cadr '(+ 2 3)) (caddr '(+ 2 3))) 但我得到了以下错误: 应用:不是一个程序 您可以尝试,但应立即进行: > (eval '(+ 1 2)) 3 如果希望对输入有更多的控制,请编写一个函数: (define solver (lambda (exp_lst)

我有一张这样的表格,+23。其中,第一个字符是可应用于其他两个元素的数学符号。我似乎无法让它做手术。对于上一个示例,我想返回5

我试过这个:

((car '(+ 2 3)) (cadr '(+ 2 3)) (caddr '(+ 2 3)))
但我得到了以下错误:

应用:不是一个程序

您可以尝试,但应立即进行:

> (eval '(+ 1 2))
3
如果希望对输入有更多的控制,请编写一个函数:

(define solver
     (lambda (exp_lst)
             (let ((op (car exp_lst))
                   (vars (cdr exp_lst)))
              #do/check stuff
             (apply (eval op) vars)
)))