アットウィキロゴ

コンビネータ

項 ::= 変数 | 定数 | 項(項)
λx.x+1 : (lambda (x) (+ x 1))
(λx.x+1)3 : ((lambda (x) (+ x 1)) 3)

Iコンビネータ

λ式
λx.x
I = λ(x)[x]
Scheme
(define I (lambda (x) x))

Sコンビネータ

λ式
S = λ(f)[λ(g)[λ(x)[f(x)(g(x))]]]
Scheme
(define S (lambda (f) (lambda (g) (lambda (x) ((f x) (g x))))))

Kコンビネータ

λ式
K = λ(x)[λ(y)[x]]
Scheme
(define K (lambda (x) (lambda (y) x)))

Yコンビネータ

λ式
λ(f)[λ(x)[f(x))λ(x)[f(xx)]]
Scheme
(define Y
 (lambda (X)
   ((lambda (procedure)
      (X (lambda (arg) ((procedure procedure) arg))))
    (lambda (procedure)
      (X (lambda (arg) ((procedure procedure) arg)))))))
最終更新:2007年05月16日 02:37