如何比较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)