Итерационные циклы имеют вид:
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
; нет прибавки к многословию.
Можно ли использовать NERFIN
, чтобы получить декремент цикла с n до 1 или 0 менее подробным способом, чем эквиваленты с UPPIN
или безоперационные формы цикла?
Я использую интерпретатор lci на уровне спецификации языка 1.2.