2011-12-05 6 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) -

答えて

3

#fが>ここnegate関数の単純な実装です:

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