Використовуйте підкреслення
Це, мабуть, найважливіша порада. Майже в кожній програмі 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] */