根据 2 个数字和 1 个运算符执行算术运算

Perform arithmetic operation based on 2 numbers and 1 operator

(define (perform-op m n opt)
    (cond                                     
    ((eqv? opt #\+)(+ m n)) 
    ((eqv? opt #\-)(- m n))
    )                
)

这是函数的一个片段。 m 和 n 是整数,而 opt 是运算符(在本例中为 + 或 -)。这是正确的吗?我是球拍新手。

如果您这样调用函数,您的函数就可以工作:

> (perform-op 1 2 #\+)
3
> (perform-op 1 2 #\-)
-1

如果您希望只有两个操作(在本例中为 #\+#\-),您可以简化该代码:

(define (perform-op m n opt)
    (if (eqv? opt #\+)
        (+ m n) 
        (- m n)))

如果你想这样调用你的函数:(perform-op 1 2 +)(注意+在这里是符号,不是字符),你可以简单地写:

(define (perform-op m n opt)
  (opt m n))

并调用:

> (perform-op 1 2 +)
3