## Klong is Unambiguous

Array languages typically introduce a lot of ambiguity, which is intended, because it is common in mathematics and allows to recycle symbols and names for different purposes. It is also something that I have always disliked about math. Hence I invented Klong.

For instance, in K the expression `f/x` may denote any of the following, depending on the type of `f`:

• fold `f` over `x`
• converge toward the fixpoint of `f(x)`

Similarly, `x f/y` may denote:

• fold `f` over `x,y`
• set `y:f(y)` while `x(y)`
• set `y:f(y)` `x` times

Im Klong, there is a unique adverb for each of those operations:

 `f/x` fold `f` over `x` `f:~x` converge toward the fixpoint of `f(x)` `x f/y` fold `f` over `x,y` `x f:~y` set `y::f(y)` while `x(y)` `x f:*y` set `y::f(y)` `x` times

The Converge and While adverbs are distingished by their context: `f:~` in a prefix position means Converge and in an infix position it means While.

Similarly, Klong distinguishes between Drop (`_`) and Cut (`:_`), Modulo (`!`) and Rotate (`:+`), and Take (`#`) and Reshape (`:^`).

And, yes, some Klong operators look like smileys. :)