Что хорошего в операции цикла NERFIN в LOLCODE?

Что говорится в спецификации по этому поводу:

Итерационные циклы имеют вид:

IM IN YR 

Где может быть UPPIN (увеличение на единицу), NERFIN (уменьшение по одному) или любой унарной функции. Который операция / функция применяется к , которая является временной, и локальный к петле. TIL оценивает выражение как TROOF: если он оценивается как FAIL, цикл продолжается еще раз, если нет, затем выполнение цикла останавливается, и продолжается после соответствующего IM OUTTA YR . WILE равно обратное: если выражение WIN, выполнение продолжается, иначе цикл завершается.

Вопрос

Моя претензия к спецификации заключается в сочетании:

  • отсутствия инициализатора переменной цикла
  • того факта, что он временный и локальный для цикла

Насколько я понимаю , это означает, что имеет для начала с 0.

Хотя в большинстве случаев это нормально для большинства случаев использования UPPIN , для большинства (моих) предполагаемых применений NERFIN это полностью отключено. . Мое наиболее частое использование переменной цикла с уменьшением числа на других языках - это идиома «повтор n раз ( n не используется повторно)» и строковые операции, которые не подходят идея в LOLCODE в любом случае.

Можно ли использовать NERFIN , чтобы получить декремент цикла с n до 1 или 0 таким образом, чтобы ' менее подробны, чем эквиваленты с UPPIN или безоперационные формы цикла?

Сравнение альтернатив

Печать 5 4 3 2 1 с вариантом UPPIN :

IM IN YR LOOPZ UPPIN YR COWNTR TIL BOTH SAEM COWNTR AN 5
  VISIBLE DIFF OF 5 AN COWNTR
IM OUTTA YR LOOPZ

Плюсы: лаконичный.
Минусы: фактическая переменная цикла не доступна напрямую.

В варианте без операции:

I HAS A COWNTR ITZ 5
IM IN YR LOOPZ
  VISIBLE COWNTR
  COWNTR R DIFF OF COWNTR AN 1
  BOTH SAEM COWNTR AN 0, O RLY?
  YA RLY, GTFO, OIC
IM OUTTA YR LOOPZ

Плюсы: переменная цикла доступна напрямую.
Минусы: длиннее.

Лучшее, что я могу получить с NERFIN :

IM IN YR LOOPZ NERFIN YR COWNTR TIL BOTH SAEM COWNTR AN -5
  VISIBLE SUM OF 5 AN COWNTR
IM OUTTA YR LOOPZ

Плюсы: эээ ... использует NERFIN ?
Минусы: переменная цикла недоступна напрямую; менее читаемый (ха!), чем вариант UPPIN ; нет прибавки к многословию.

Вопрос TL; повторяется

Можно ли использовать NERFIN , чтобы получить декремент цикла с n до 1 или 0 менее подробным способом, чем эквиваленты с UPPIN или безоперационные формы цикла?

Я использую интерпретатор lci на уровне спецификации языка 1.2.

26
задан JB. 25 May 2011 в 13:12
поделиться