Используйте подчеркивание
Это, наверное, самый важный совет. Почти в каждой программе Röda для игры в гольф используются подчеркивания.
Синтаксис подчеркивания является синтаксическим сахаром для for
циклов. Следующие строки кода эквивалентны:
ls""|fileLength x for x|sort|pull
ls""|fileLength _|sort|pull
Каждое подчеркивание добавляет новую переменную в невидимый for
цикл вокруг оператора. Цикл извлекает одно значение из потока для каждой переменной / подчеркивания, а затем повторяется, пока не останется никаких значений.
Подчеркивания могут быть использованы где угодно в выражениях:
a[x:y+1]=[1]*(1+y-x) /* Sets range x..y (inclusive) */
seq x,y|a[_]=1 /* 6 bytes less */
Если вы должны ссылаться на одно и то же значение подчеркивания более одного раза или использовать значения в обратном порядке, вы можете поставить число после подчеркивания:
a|[_^_1] /* maps x to x^x */
a|[_2-_1] /* maps each pair (x,y) to y-x, eg. [1,2,4,8] -> [1, 4] */