>> repend ["foo"] [21 * 2]
== ["foo" 42]
Datovýtyp refinement!
1. Úvodem
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í:
S upřesněním /only
:
>> repend/only ["foo"] [21 * 2]
== ["foo" [42]]
Datový typ refinement!
je subtypem typesetů all-word!
a immediate!
.
2. Vytvoření
Hodnoty typu refinement! lze vytvořit použitím literálové syntaxe nebo při runtimu konstruktorem make
či konverzí to
.
>> /foo
== /foo
>> make refinement! "bar"
== /bar
>> to refinement! 'baz
== /baz
3. Literálová skladba
Lomíko /
, následované jedním či více znaky sady Unicode, včetně interpunkčních znaků ze sady ASCII: ! & ' * + - . < = > ? _ | ~`
Nepovolenýi 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! .
|
4. Komparace
Na refinement!
lze aplikovat všechny komparátory: =, ==, <>, >, <, >=, <=, =?
.
5. Testování hodnot
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!
6. Předdefinovaná slova
6.1. Funkce
parse-func-spec
, refinement?
, to-refinement
6.2. Natives
function