(define S (lambda (f) (lambda (g) (lambda (x) ((f x) (g x)))))) (define K (lambda (x) (lambda (y) x))) (define I (lambda (x) x))
(define-macro (define-combinator name body) `(define ,name (lambda (arg) (,body arg))))
(define define-combinator define)
(define-combinator B ((S (K S)) K)) (define-combinator C ((S((S(K((S(K S))K)))S))(K K))) (define-combinator M ((S I) I)) (define-combinator L ((C B) M))