The term "macro" as used in computer science is a rule or pattern that specifies how a certain input sequence should be mapped into an output sequence. Macros are normally used to map a short string to a longer string (sequence of instructions). Macros simplify things in Unravel by providing short-cuts for long sets (or frequently used short sets) of instructions on how to rotate the cube. In Rubik's cube parlance, command sequences that perform non-trivial transformations are often referred to as algorithms. Such algorithms are prime candidates for macro implementation.
A macro can be called by any alphabetical character except F, B, L, R, U, D, W and M (reserved symbol defined below). There are thus 18 allowable alphabetical macro symbols:
A, C, E, G, H, I, J, K, N, O, P, Q, S, T, V, X, Y, and Z.
A macro can also be called by a number enclosed within angle brackets (or without brackets if the character M precedes the number). Such macros are referred to as numerical macros. Numerical macros conform to the arrangement <(Row)(Column)> where Row and Column conform to a coordinate structure that facilitates the use of such macros particularly for centre cubie placement. For convenience, designate a row digit as R and a column digit as C. For cubes of size less than 17, a total of two digits is used, whereas for cubes of size greater than 16, a total of four digits is used. That results in numerical macros of the form <RC> and <RRCC> respectively.
Macro command sequences can contain any standard commands or other macro symbols subject to a 63-character limit for internal coding. In that respect, each macro of the type <RC> or <RRCC> is encoded as only one integer. Similarly, two-digit numbers (except those having a "0" prefix), preceding a rotation symbol, are encoded as single integers. Macro nesting to any depth is permitted.
Optional numerical macro symbol M in lieu of angle brackets (i.e. MRC or MRRCC in lieu of <RC> or <RRCC>) would normally be used for keyboard entry. In that way there is no need to use the shift key (lower case alphabetical characters are always internally converted and displayed as upper case). Angle brackets improve readability when used in help text.
For more details, refer to Macro definition.