如何比较racket中的3个或更多参数?

如何比较racket中的3个或更多参数?,racket,comparison-operators,Racket,Comparison Operators,我知道,在球拍中比较两个数字,你们会得到这样的结果 (define (myMax x y) (if (< x y) y x)) 如果要处理未定义数量的元素,则需要使用list 惯用的方法是使用递归处理元素。每个函数调用需要处理一个元素(car)和列表的其余部分cdr 您可以在另一篇文章中找到实现: 编辑1:示例 (define (maximum L) (if (null? (cdr L)) (car L) (i

我知道,在球拍中比较两个数字,你们会得到这样的结果

  (define (myMax x y)
           (if (< x y) y x))

如果要处理未定义数量的元素,则需要使用
list

惯用的方法是使用
递归
处理元素。每个函数调用需要处理一个元素(
car
)和列表的其余部分
cdr

您可以在另一篇文章中找到实现:

编辑1:示例

(define (maximum L)
     (if (null? (cdr L)) 
         (car L) 
         (if (< (car L) (maximum (cdr L)))  
             (maximum (cdr L)) 
             (car L))))

(maximum '( 1 2 3 ))
(maximum '( 1 2 3 4))
(maximum '( 1 2 3 4 5))
编辑2:如果真正的问题是关于Racket中变量数量的
,您可以使用以下符号:

(define (test-function . L)
  (printf "~S~%" L)) ;; Here: L is the list (1 2 3)

(test-function 1 2 3)
将显示(
printf
):


我不知道被否决的原因。在发布这个答案之前,我在Racket IDE中测试了代码,它提供了一个使用列表的
myMax
的实现
3
4
5
(define (test-function . L)
  (printf "~S~%" L)) ;; Here: L is the list (1 2 3)

(test-function 1 2 3)
(1 2 3)