方案 n 元函数

发布于 2024-10-05 17:10:12 字数 102 浏览 1 评论 0原文

我正在寻找自己的定制<函数可以在方案中接受任意数量的参数。我该怎么做呢?

我想我必须做类似 (and (b< xy) (b< yz)) 的事情,但我不确定。

I'm looking to make my own custom < function that can take any number of arguments in scheme. How would I go about doing this?

I'm thinking I have to do something like (and (b< x y) (b< y z)) but I'm not sure.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

以往的大感动 2024-10-12 17:10:30

好吧,首先,您定义一个可变参数函数,

(define (my-< . numbers)
    <body>
)

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

well, to start off, you define a variadic function with something like

(define (my-< . numbers)
    <body>
)

then numbers will be a list which contains the arguments. From there you'll need some sort of loop or recursion so that it works for an arbitrary number of arguments.

葵雨 2024-10-12 17:10:25

下面是 < 的实现,其工作原理与 Scheme 中的实现类似,使用 b< 作为二进制小于运算:

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

Here's an implementation of < that works like the one in Scheme, using b< as the binary less-than operation:

(define (< . args)
  (cond 
    [(null? args) #t]
    [(null? (cdr args)) #t]
    [(b< (car args) (car (cdr args)))
     (apply < (cdr args))]))
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文