Datový typ word!

1. Úvodem

Entita typu word! je slovo, které lze použít jako proměnnou, neboli identifikátor, který v daném kontextu odkazuje na přiřazenou hodnotu.

Slova neobsahují hodnoty, pouze na ně v daném kontextu ukazují a mají globální kontext, není-li jim žádný kontext přisouzen.

Typ word! je subtypem těchto typesetů: any-word!, all-word!, immediate!

1.1. Variace slova

Syntax

Type

Description

word

word!

Refers to a value in a given context.

word:

set-word!

Sets a reference to a value.

:word

get-word!

Gets a value without performing evalutaion.

'word

lit-word!

Suppresses evaluation. The literal value "word".

/word

refinement!

Evaluates the word as a refinement.

2. Vytvoření

Hodnoty typu word! lze vytvořit literálovou syntaxí nebo při runtimu konverzí to z datových typů: char!, logic!, string!, datatype!, issue! a refinement!.

>> to word! #"X"
== X

>> to word! true   ; returns a word representation of the value
== true

>> to word! "Hello"
== Hello

>> to word! float!  ; returns a word representation of the value
== float!

>> to word! #hi
== hi

>> to word! /deep
== deep
Note
Pokus o konvertování hodnoty none vyvolá chybové hlášení.

3. Literálová skladba

Lze použít jeden či více znaků z celé sady Unicode, včetně interpunkčních znaků ze sady ASCIII: ! & ' * + - . < = > ? _ | ~`

Note
Slova jsou case-insensitive. Změna velikosti písmene ve ve slovu nevytvoří jiné slovo.

Nepovolené jsou řídící znaky, znaky mezer a punktuační znaky: / \ ^ , [ ] ( ) { } " # $ % @ : ;

Hodnota word! nemůže začínat číslem.

4. Průběh vyhodnocení

  • Nalezení kontextu, k němuž je slovo vázáno.

  • Získání hodnoty v kontextu zmiňované.

  • Ověření typu hodnoty:

    • Pokud žádná hodnota neexistuje, typem je unset! a vrací se chybové hlášení.

    • Pokud typ hodnoty patří do typesetu any-function!, volá se funkce.

    • V ostatních případech se vrací ověřovaná hodnota.

5. Komparace

Na hodnotu typu word! lze aplikovat v?echny komparátory: =, ==, <>, >, <, >=, <=, =?.

6. Testování hodnot

Funkcí word? ověříme, zda je hodnota typu word!.

>> word? first [let us code]
== true

Funkce type? vrací datový typ dané hodnoty.

>> type? first [let us code]
== word!

results matching ""

    No results matching ""