Inca

From Esolang
Jump to navigation Jump to search

Inca is a language based on APL mapped to the ASCII character set.

The name "inca" refers to the data-storage device the quipu and its similarity to array-structured data.

Inca exists in two distinct versions: the original inca.c implementation which is limited to integer data, and the newer inca2.c implementation which has homogeneous arrays of integer, character, or double type. Different syntax and symbol choices have led to the result that the two versions are not compatible. This page will describe inca2 as the more interesting of the two.

Monadic functions:  ! not, # shape, * sign of, + identity, , ravel, - negate,  ; execute, < box, > unbox, @ reverse, [ floor, ] ceiling, _ file, ` transpose, { size, | absolute value, ~ iota.

Dyadic functions:  ! not equal, # reshape, $ or,  % divide, & and, * times, + plus, , cat, - minus, . logarithm, / compress, < less than, = equal, > greater than, @ rotate, [ minimum, \ expand, ] maximum, ^ power, _ file, ` transpose, { from, | modulus, ~ find.

Monadic operators which produce a monadic derived function: f/ reduce using f, f\ scan using f, f_ apply f along first axis, f! not f, and the unusual operator @ figurative transpose. .@ identity transpose, -@ horizontal transpose, |@ vertical transpose, \@ y=x transpose, /@ y=-x transpose, +@ horz + vert transpose, >@ horz + y=x transpose, <@ horz + y=-x transpose.

Monadic operators which produce a dyadic derived function: 'f* power using f, f! not f, f. jot-dot function table, and the unusual = operator. == is the same as = , != is the same as ! , <= less than or equal, >=` greater than or equal.

Dyadic operators which produce a dyadic derived function: f&g f of g f(g(x,y)), f.g f/ (x)g(y) for rows of x (or first axis) and columns of y (or last axis).

External resources

Project page.