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
== /baz
Lomí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]
== true
Funkce type?
vrací datový typ zadané hodnoty.
>> type? /foo
== refinement!
>> type? third [42 "Foo" /bar]
== refinement!