MappingPackage3(A, B, C)

mappkg.spad line 146 [edit on github]

various Currying operations.

* : (Mapping(C, B), Mapping(B, A)) -> Mapping(C, A)

f*g is the function h such that h x= f(g x).

constantLeft : Mapping(C, B) -> Mapping(C, A, B)

constantLeft(f) is the function g such that g (a, b)= f b.

constantRight : Mapping(C, A) -> Mapping(C, A, B)

constantRight(f) is the function g such that g (a, b)= f a.

curryLeft : (Mapping(C, A, B), A) -> Mapping(C, B)

curryLeft(f, a) is the function g such that g b = f(a, b).

curryRight : (Mapping(C, A, B), B) -> Mapping(C, A)

curryRight(f, b) is the function g such that g a = f(a, b).

twist : Mapping(C, A, B) -> Mapping(C, B, A)

twist(f) is the function g such that g (a, b)= f(b, a).