Skip to content

Latest commit

 

History

History
115 lines (65 loc) · 8.26 KB

File metadata and controls

115 lines (65 loc) · 8.26 KB

Typesety

1. Úvodem

Typesety jsou sady hodnot typu datatype!, uložených v kompaktní řadě (array) bitů (max 96), umožňujících vysokorychlostní kontrolu typů při runtime.

Datové typy v typesetu mohou mít společné rysy nebo chování ale není to podmínkou. Typeset lze vytvořit v závislosti na kriteriích, vyhovujících potřebám uživatele.

Viz: typeset!

2. Aktuálně existující typesety:

2.1. all-word!

2.2. any-block!

2.3. any-function!

2.4. any-list!

2.5. any-object!

2.6. any-path!

2.7. any-string!

2.9. any-word!

2.11. external!

2.13. internal!

2.14. number!

2.15. scalar!

2.16. series!

  • make typeset! [block! paren! string! file! url! path! lit-path! set-path! get-path! vector! hash! binary! tag! email! image!]

    Slovo series má v prostředí jazyka Red dva významy. Jednak to je (s vykřičníkem) označení typesetu (viz výše), jednak to je (bez vykřičníku) označení druhu objektu. Řada (series) je v Redu definována jako sekvence prvků, jež má počáteční pozici, která může být posunována z první pozice (head) k poslední pozici (tail). Počátek prázdné řady je na poslední pozici (tail). Jednotlivé pozice jsou označeny pořadovým číslem - indexem.

    >> a: "hello"
    == "hello"
    
    >> b: next a
    == "ello"
    
    >> index? a
    == 1
    
    >> index? b
    == 2
    
    >> same? a b
    == false
    
    >> same? a head b
    == true
    
    >> append a " world"
    == "hello world"
    
    >> b
    == "ello world"

Typ prvků v řadě (series) je závislý na jejích datovém typu, např. řada typu block může obsahovat dle definice (block!) hodnoty libovolného typu. Řada typu string(string!) může obsahovat pouze hodnoty typu char.

Typeset series! disponuje proměnným indexem, který může být využit všemi hodnotami typu action!.