What general tips do you have for golfing in LOLCODE? I'm looking for ideas that can be applied to code golf problems in general that are at least somewhat specific to LOLCODE. (e.g. "remove comments" is not an answer). Please post one tip per answer.
Define variables using the syntax
variable R value rather than
I HAS A variable ITZ value.
If you want to set a variable
n equal to 1,
n R 1
is only 5 bytes, whereas
I HAS A n ITZ 1
is 15 bytes.
In many LOLCODE implementations, such as the one on repl.it,
KTHXBYE, which begin and end programs respectively, are unnecessary. In implementations in which they are necessary, the version number after
HAI isn't necessary (e.g.
STDIO library is typically loaded by default, so
CAN HAS STDIO? is also unnecessary.
In many cases it's shorter to read variable values from STDIN rather than defining a function. However, note that
GIMMEH, which reads input from STDIN, always reads a
YARN (i.e. string). But you can take advantage of LOLCODE's dynamic typing and add 0 to convert to a
GIMMEH n n R SUM OF n AN 0 ... (operations on n)
n is 26 bytes, including newlines. Compare this to a user-defined function:
HOW DUZ I f YR n ... (operations on n) IF U SAY SO
This requires 28 bytes.
Note that you could also multiply by 1 to convert to a
NUMBR, but that requires 4 more bytes than the sum:
GIMMEH n n R PRODUKT OF n AN 1
When printing the value of a variable to STDOUT, consider the following:
is much shorter than
Also, whenever a trailing newline is acceptable,
which includes a trailing newline by default, is shorter than
which suppresses the newline.