Советы по игре в гольф в LOLCODE

14

Какие общие советы у вас есть для игры в гольф в LOLCODE? Я ищу идеи, которые могут быть применены к задачам по коду для гольфа в целом, которые, по крайней мере, несколько специфичны для LOLCODE. (например, «удалить комментарии» не является ответом). Пожалуйста, оставьте один совет за ответ.

Loovjo
источник
Я думал о публикации этого сам. На самом деле это не невозможно играть в гольф в LOLCODE.
Алекс А.
2
Несколько неловко, но мои вторые и третьи самые высокие ответы находятся в LOLCODE. Поэтому я воспользуюсь этой возможностью, чтобы поделиться всем, что я знаю.
Алекс А.

Ответы:

7

Определите переменные, используя синтаксис, variable R valueа не I HAS A variable ITZ value.

Если вы хотите установить переменную, nравную 1,

n R 1

только 5 байтов, тогда как

I HAS A n ITZ 1

15 байт.

Алекс А.
источник
2
Но тогда вы теряете смысл LOLCODE!
Оптимизатор
3
@Optimizer: Если честно, когда есть смысл в LOLCODE?
Алекс А.
18
Дело в LOLCODE для LOL, конечно.
user12205
1
@ace: Хорошо, ты меня туда доставил.
Алекс А.
6
лол
bjb568
3

Во многих реализациях LOLCODE, например, один на repl.it , HAIи KTHXBYE, которые начинаются и заканчиваются программы соответственно, излишни. В реализациях, в которых они необходимы, номер версии после HAIне требуется (например, HAI 1.2).

Точно так же STDIOбиблиотека обычно загружается по умолчанию, поэтому CAN HAS STDIO?также не требуется.

Алекс А.
источник
3

Во многих случаях читать значения переменных из STDIN короче, чем определять функцию. Однако обратите внимание GIMMEH, что при чтении ввода из STDIN всегда читается YARN(то есть строка). Но вы можете воспользоваться преимуществами динамической типизации LOLCODE и добавить 0 для преобразования в a NUMBR.

Например,

GIMMEH n
n R SUM OF n AN 0    
... (operations on n)

Определение nсоставляет 26 байтов, включая переводы строки. Сравните это с пользовательской функцией:

HOW DUZ I f YR n
    ... (operations on n)
IF U SAY SO

Это требует 28 байтов.

Обратите внимание, что вы также можете умножить на 1, чтобы преобразовать в a NUMBR, но для этого требуется на 4 байта больше, чем сумма:

GIMMEH n
n R PRODUKT OF n AN 1
Алекс А.
источник
1
Но n IS NOW A NUMBRэто на один байт корочеn R SUM OF n AN 0
Leaky Nun
@LeakyNun Какая реализация имеет это? Я не видел этого раньше.
Алекс А.
2

При печати значения переменной в STDOUT учитывайте следующее:

VISIBLE variable

намного короче

VISIBLE ":{variable}"

Кроме того, всякий раз, когда завершающий перевод строки является приемлемым,

VISIBLE variable

который включает завершающий символ новой строки по умолчанию, короче

VISIBLE variable!

который подавляет перевод строки.

Алекс А.
источник