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

Racket 根据2个数字和1个运算符执行算术运算,racket,Racket,这是函数的一个片段。m和n是整数,opt是运算符(在本例中为+或-)。是这样吗?我不熟悉球拍。如果您这样称呼它,您的函数会起作用: (define (perform-op m n opt) (cond ((eqv? opt #\+)(+ m n)) ((eqv? opt #\-)(- m n)) ) ) 如果只需要两个操作(在本例中为\+和\-),则可以简

这是函数的一个片段。m和n是整数,opt是运算符(在本例中为+或-)。是这样吗?我不熟悉球拍。

如果您这样称呼它,您的函数会起作用:

(define (perform-op m n opt)
    (cond                                     
    ((eqv? opt #\+)(+ m n)) 
    ((eqv? opt #\-)(- m n))
    )                
)
如果只需要两个操作(在本例中为
\+
\-
),则可以简化该代码:

> (perform-op 1 2 #\+)
3
> (perform-op 1 2 #\-)
-1
如果您想像这样调用函数:
(执行op12+
(注意,
+
在这里是符号,而不是字符),您可以简单地编写:

(define (perform-op m n opt)
    (if (eqv? opt #\+)
        (+ m n) 
        (- m n)))
并致电:

(define (perform-op m n opt)
  (opt m n))
> (perform-op 1 2 +)
3