Hodntoty typu refinement! (upřesnění) jsou symbolické hodnoty, používané jako modifikátory funkcí nebo jako extenze u objektů, souborů, URL nebo cest.
Funkce repend bez upřesnění:
>> repend ["foo"] [21 * 2]
== ["foo" 42]S upřesněním /only:
>> repend/only ["foo"] [21 * 2]
== ["foo" [42]]Datový typ refinement! je subtypem typesetů all-word! a immediate!.
Hodnoty typu refinement! lze vytvořit použitím literálové skladby při načítání skriptu nebo při runtime konstruktorem make či konverzí to.
>> /foo
== /foo>> make refinement! "bar"
== /bar>> to refinement! 'baz
== /bazLomíko /, následované jedním či více znaky sady Unicode, včetně interpunkčních znaků ze sady ASCII: ! & ' * + - . < = > ? _ | ~`
Nepovolenými znaky jsou řídící znaky, znaky mezer a interpunkční znaky ze sady ASCII: / \ ^ , [ ] ( ) { } " # $ % @ : ;
|
Note
|
Použití znaku @ nevyvolá chybu, ale způsobí, že se hodnota refinement! vrátí jako email!.
|
Funkce refinement? slouží k ověření, zda je zadaná hodnota typu refinement!.
>> refinement? /foo
== true
>> refinement? third [42 "Foo" /bar]
== trueFunkce type? vrací datový typ zadané hodnoty.
>> type? /foo
== refinement!
>> type? third [42 "Foo" /bar]
== refinement!