Scheme n-ary函数

时间:2010-12-05 07:34:12

标签: function scheme

我正在寻找自己的定制<可以在scheme中使用任意数量的参数的函数。我该怎么做呢?

我想我必须做一些像(和(b< x y)(b< y z))但我不确定的事情。

2 个答案:

答案 0 :(得分:3)

这是<的一个实现,它的工作方式类似于Scheme,使用b<作为二进制小于操作:

(define (< . args)
  (cond 
    [(null? args) #t]
    [(null? (cdr args)) #t]
    [(b< (car args) (car (cdr args)))
     (apply < (cdr args))]))

答案 1 :(得分:2)

好吧,首先,你用

之类的东西定义一个可变函数
(define (my-< . numbers)
    <body>
)

然后数字将是包含参数的列表。从那里你需要某种循环或递归,以便它适用于任意数量的参数。