http://t3x.org/klong/klong-vs-k.txt.html

# Differences from K

```        ================================================================
|              KLONG  **  A SIMPLE ARRAY LANGUAGE              |
================================================================

Differences Between Klong and K
By Nils M Holm
n m h @ t 3 x . o r g

::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

Klong is sufficiently similar to K to confuse you, so here is a
summary of things that work differently in K. This list may not

----------------------------------------------------------------
OBJECT SYNTAX
----------------------------------------------------------------

A single colon is used for quotation, so :x is like `x in K.

Lists are LISP-like in Klong, but using square brackets:

K List                        Klong List
1 2 3 4 5                     [1 2 3 4 5]
(1 2 3; 4 5 6; 7 8 9)         [[1 2 3] [4 5 6] [7 8 9]
((1 2; 3 4)                   [[[1 2] [3 4]] [[5 6] [7 8]]]
(5 6; 7 8))

Real numbers must have at least one digit before the ".", i.e.
.0 is not a valid real number (but 0. is).

Symbol names may contain dots, and system function begin with a
dot, e.g.: .rn, .w, etc.

----------------------------------------------------------------
VERBS
----------------------------------------------------------------

Some verbs are different. They may differ in syntax, naming, or
semantics:

K Verb       K Syntax     Klong Syntax   Klong Verb
----------   ----------   ------------   --------------
Amend        v:x          x::y           Define
Item Amend   v[i;...]:x   x:=[y i...]    Amend
Amend        v[i;...]:x   x:-[y i...]    Amend-in-Depth
?            ?            :#x            Char
Cut/Drop     x_y          x:_y           Cut
Where        &x           &x             Expand/Where
Form         x\$y          x:\$y           Form
Format       x\$y          x\$y            Format2
?            ?            x:@y           Index-in-Depth
?            ?            x:%y           Integer-Divide
Enlist       ,x           ,x             List
Reshape      x#y          x:^y           Reshape
Rotate/Mod   x!y          x!y            Remainder
Rotate/Mod   x!y          x:+y           Rotate
Count        #x           #x             Size
?            ?            x:#y           Split
Flip         +x           +x             Transpose

There are also lots of K verbs that do not have any counterparts
in Klong. They are not listed here.

Unlike Amend, Define can only assign a value to a variable.

The left side of Amend and Amend-in-Depth may be a list or array.
Amend always returns a fresh copy and never alters values in
situ. See [Amend] and [Amend-in-Depth] in the Reference Manual
for examples.

Cut may have an integer on its left side, e.g. 1:_[1 2 3].

Form returns :undefined when it cannot decode its string
argument.

Remainder returns the difference between the division result and
the truncated (rounded to -infinity) division result.

Size returns the magnitude (absolute value) of numbers and the
code point of characters.

----------------------------------------------------------------
----------------------------------------------------------------

Som adverbs also differ from their K counterparts:

----------   ----------   ------------   -----------------
Each         x f'y        x f'y          Each2
Each-Right   x f/:y       x f:\y         Each-Left
Each-Pair    x f':y       x f:'y         Each-Pair
Each-Left    y f\:x       x f:/y         Each-Right
Over Dyad    x f/y        x f/y          Over/Neutral
Over Monad   x f/y        x f:~y         While
Over Monad   x f/y        x f:*y         Iterate
Scan Dyad    x f\y        x f\y          Scan-Over-Neutral
Scan Monad   f\x          x f\~x         Scan-While
Scan Monad   f\x          x f\*x         Scan-Iterating

Each-Pair combines elements in the opposite order, e.g.:
-:'[1 2 3 4]  -->  (1-2),(2-3),(3-4)

Each-Left and Each-Right are opposites in K and Klong, and in
addition, arguments are expected in a different order in one
case. Look closely!

Scan-While collects only elements that satisfy the condition,
e.g.: {x<10}{x+1}\~1  -->  [1 2 3 4 5 6 7 8 9]

----------------------------------------------------------------
MISCELLANEA
----------------------------------------------------------------

Dictionaries are always altered in situ.

================================================================
```