iogii is a successor to Atlas, from the same developer who made Golfscript.
Here is the starting guide, brief tutorial and quick reference. For another good introduction, see lynn's guide
Assorted tips
kcan be used to repeat a scalar value. E.g.,1 3k = 1r3k = 1,1,1and'*3k = '*r3k = "***". This is less useful for chars since*can be used instead, but it can sometimes save a byte on ints.- Under the right circumstances (no other input or higher-priority implicits, at least), it can be possible to rotate a program so the
>matches with anito the right.
4i3/$+>10k
+>10k4i3/
- The digit packing/unpacking ops
U,D,Xare liberal in their inputs: the base can be negative, and the "digits" don't have to be in the range 0-b. So, they are useful for general geometric series stuff. - The folding ops
i,fonly accept one seed value. If you need more, you can add them as follows:
# 2 starting values
1i2*1c> # 1,1,2,2,4,4,...
1,1et2*a> # 1,1,2,2,4,4,...
# 3 starting values
1,1 1i2*a> # 1,1,1,2,2,2,...
1,1,1et2*a> # 1,1,1,2,2,2,...
- If you only need one value from an iteration operation, sometimes a fold can be shorter, particularly if you need commas on the operators.
"x"I,"y"C>10G,
"x"F,"y"10KC>
- Loops that involve multiple variables can be done by mutual recursion. For example, if you want to iteratively apply
x,y = y%5,x+1with initial values1,2, you can do
Y5%1c let X
X)2c let Y
- The "<<loop>>" error means there's a circular dependency somewhere, often either (1) a list element that's defined in terms of itself (2) the size of the list is defined in terms of itself. To solve the second problem, try adding zero padding
z,Z,Z,, etc., along all dimensions. - Char packing is done by using the
.op to get numbers from Unicode strings. In rare cases, it may be useful to know that proceeding a string withbwill get the UTF-8 bytes, e.g.,"💎"b. = [240,159,146,142]