2011-12-05 2 views
1

본질적으로 함수이고 그 함수의 역을 반환하는 인수를 취하는 함수를 작성하려고합니다. 나는 람다를 사용하여 이것을 달성하고 적용해야한다. 내가 지금까지 가지고있는 것은 다음과 같습니다. 모든 인수를 취할 람다 함수를 정의하는 방법을 파악할 수 없기 때문에 현재로서는 작동하지 않습니다. 추가 도움이 많이 주시면 감사하겠습니다.람다를 사용하여 함수 쓰기 및 적용

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

출력 예 :

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

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

((L3 <) 3/3) -> #T

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

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

답변

3

여기 negate 함수의 단순한 구현이다 :

;; negate : (Any * -> Boolean) -> (Any * -> Boolean) 
(define (negate f) 
    (lambda args 
    (not (apply f args))))