combinator 0.1.0

Combinator inspired by APL/J
Documentation

Duo-Combinators

Atop

/x:A
M1-D2<
\y:B 

M1.AT(D2) (x,y)
M1: Fn(C)->D
D2: Fn(A,B)->C

Appose

/M2-x:A
D1<
\M2-y:A

D1.AP(M2) (x,y)
D1: Fn(B,B)->C
M2: Fn(A)->B

Compose

M1-M2-y:B

M1.CP(M2) (y)
M1: Fn(D)->E
M2: Fn(B)->C

Hook

/x:A
D1<
\M2-y:B

D1.HK(M2)(x,y)
D1: Fn(A,C)->D
M2: Fn(B)->C

MonoHook

(y)
/ \
D1<   \
\M2-y:B

D1.MH(M2)(y)
D1: Fn(B,C)->D
M2: Fn(B)->C

RevHook

(y)
/   \ /M-x:A
D1<     X
\   / \-y:B
(M2(x))

D1.RH(M2)(x,y)
D1: Fn(B,C)->D
M2: Fn(A)->C

Mono-Combinator

Relflex

(y)
/ \
D1<   >y:B
\ /
(y)

D1.RF()(y)
D1 : (B,B)->C

Flip

(y)
/ \ /x:A
D1<   X
\ / \y:B
(x)

D1.FL()(x,y)
D1 : Fn(B,A)->C