Схема н-арных функций - PullRequest
0 голосов
/ 05 декабря 2010

Я ищу свою собственную функцию <, которая может принимать любое количество аргументов в схеме.Как мне поступить так? </p>

Я думаю, что должен сделать что-то вроде (и (b <xy) (b <yz)), но я не уверен.

Ответы [ 2 ]

3 голосов
/ 06 декабря 2010

Вот реализация <, которая работает аналогично схеме на схеме, используя b< в качестве двоичной операции меньше чем:

(define (< . args)
  (cond 
    [(null? args) #t]
    [(null? (cdr args)) #t]
    [(b< (car args) (car (cdr args)))
     (apply < (cdr args))]))
2 голосов
/ 05 декабря 2010

ну, для начала, вы определяете переменную функцию с чем-то вроде

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

, тогда числа будут списком, который содержит аргументы.Оттуда вам понадобится какой-то цикл или рекурсия, чтобы он работал для произвольного числа аргументов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...