Написание функции с использованием лямбда и применить - PullRequest
1 голос
/ 05 декабря 2011

Я пытаюсь написать функцию, которая принимает аргумент, который по сути является функцией, и возвращает обратное значение этой функции.Я должен добиться этого с помощью лямбды и применять.Вот то, что я имею до сих пор ... это не работает в данный момент, потому что я не могу понять, как определить лямбда-функцию, которая будет принимать любое количество аргументов.Любая дополнительная помощь приветствуется.

(define foobar (lambda (F) (lambda x(apply not (map x F)))))

Пример вывода:

((L3 <) 4 3) -> # t

((L3 <) 34) -> # f

((L3 <) 3 3) -> # t

((L3 (L3 <)) 3 4) -> # t

((L3 (L3 <)) 4 3) -> # f

1 Ответ

3 голосов
/ 05 декабря 2011

Вот простая реализация функции negate:

;; negate : (Any * -> Boolean) -> (Any * -> Boolean)
(define (negate f)
  (lambda args
    (not (apply f args))))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...