Poznámky ke skladbě
- Red je 'case insensitive' - s několika málo výjimkami, z nichž nejdůležitější je ta, že program musí začínat slovem Red (nikoliv RED nebo red).
- Znaky new-line jsou interpretem Redu většinou ignorovány. Relevantní výjimkou je new-line uvnitř řetězce (stringu).
- Red je funkcionální jazyk, což znamená, že vyhodnocuje výsledky. Pořadí vyhodnocení výrazu není obvyklé a hovoříme o něm v části Vyhodnocení.
- Program Redu je dlouhý řetěz slov (words). Těmito slovy mohou být buď "data" nebo "aakce".
- Slova jsou oddělena jednou nebo více mezerami (whitespaces) .
- Red si vede slovník se systémovými slovy a s uživatelsky vytvořenými slovy.
- Slova mohou být seskupována do "bloků", vymezených hranatými závorkami. Blok je pouhá skupina slov, která může ale nemusí být vyhodnocena nějakou "akcí".
- Všechna programová data se nacházejí uvnitř samotného programu. Jsou-li potřebná externí data, jsou přidána k řetězci slov programu.
- Každé slovo musí při vyhodnocení mít nějakou hodnotu. Tato hodnota může pocházet z:
o slova samotného, je-li datem;
- vyhodnocení, je-li slovo akcí;
- odkazu na jiné slovo nebo blok (e.g. myRoom: 33).
- V Redu lze říci, že proměnná je přiřazena své hodnotě, nikoliv obráceně. V Redu vlastně nejsou žádné "proměnné", pouze slova přiřazená k hodnotám (datům).
- Kopírování slov (proměnných) může být komplikované. Chcete-li vytvořit opravdu nezávislou kopii, použijte slovo copy . Viz kapitola Kopírování.
- Podobně komplikované je vyprazdňování (clearing) řad (series), k nimž patří i řetězce. Pouhé přiřazení " " (empty string) nebo nuly nemusí přinést očekávaný výsledek. Takže k nulování řady je vhodné použít příkaz clear.
- Každé slovo je nějakým datovým typem. Těch má Red pozoruhodné množství. Jsou vyjmenovány v kapitole Datové typy.
- Deklarované slovo datového typu word! lze použít různým způsobem:
Zápis |
Význam |
word |
Vzít přirozenou hodnotu slova. Je-li funkcí, nejprve ji vyhodnotit. |
word: |
Přiřadit (assign) slovo k hodnotě. |
:word |
Vzít hodnotu slova bez vyhodnocení. Užitečné pro získání definice funkce. |
'word |
Zacházet se slovem jako s hodnotou (a word symbol) - bez vyhodnocení. |
/word |
Považovat slovo za upřesnění (refinement). Používá se hlavně u volitelných argumentů. |
Refinements (upřesnění)
Mnohé akce v Redu umožňují "upřesnění", které modifikuje chování příkazu. Refinement se deklaruje přidáním slova za lomítkem "/<refinement>".