Skip to content

Latest commit

 

History

History
129 lines (86 loc) · 2.63 KB

vector.adoc

File metadata and controls

129 lines (86 loc) · 2.63 KB

Datový typ vector!

1. Úvodem

Hodnota typu vector! je uspořádanou sekvencí identických typů char!, integer!, percent! nebo float!.

Datový typ vector! je členem typesetů default! a series!.

2. Vytvoření

Hodnoty typu vector! lze vytvořit za běhu programu s použitím konstruktoru make.

<vector>      ::= make vector! <vector-spec>

<vector-spec> ::= <block> | [ <type-size> <block>]
<type-size>   ::= char! 8 | char! 16 | char! 32 |
                  integer! 8 | integer! 16 | integer! 32 |
                  float! 32 | float! 64 |
				  percent! 32 | percent! 64
>> make vector! [integer! 32 [1 2 3 4 5]]
== make vector! [1 2 3 4 5]

>> make vector! [#"r" #"e" #"d"]
== make vector! [#"r" #"e" #"d"]

Je-li argumentem konstruktoru make hodnota N typu integer! nebo float!, vytvoří se vektor o velikosti N s jednotlivými hodnotami nastavenými na 0.

>> make vector! 3
== make vector! [0 0 0]

>> make vector! 3.0
== make vector! [0 0 0]

3. Komparace

Na hodnotu typu vector! lze aplikovat všechny komparační operátory: =, ==, <>, >, <, >=, <=, =?. Navíc jsou podporovány funkce min a max.

4. Aritmetika

Aplikace operátorů + - * / // % nebo funkcí add, average, divide, mod, modulo, multiply, remainder, subtract a sum na dva vektory vytváří nový vektor:

>> x: make vector! [1 2 3 4]
== make vector! [1 2 3 4]

>> y: make vector! [5 6 7 8]
== make vector! [5 6 7 8]

>> x * y
== make vector! [5 12 21 32]

Výchozí vektory se nemění:

>> x
== make vector! [1 2 3 4]

>> y
== make vector! [5 6 7 8]

Početní operace s jedním vektorem vede k modifikaci původního vektoru:

>> x * 2
== make vector! [2 4 6 8]

>> x
== make vector! [2 4 6 8]

Příkazem copy lze zabránit modifikaci původního vektoru:

>> (copy x) * 2
== make vector! [2 4 6 8]

>> x
== make vector! [1 2 3 4]

>> 2 * copy x
== make vector! [2 4 6 8]

>> x
== make vector! [1 2 3 4]

5. Testování hodnot

Idiomem vector? ověříme, zda je hodnota typu vector!.

>> vector? x
== true

Idiom type? vrací datový typ zadané hodnoty.

>> type? y
== vector!

6. Předdefinovaná slova

6.1. Akce

add, and~, divide, multiply, or~, remainder, subtract, xor~

6.2. Funkce

average, draw, mod, modulo, sum, vector?

6.3. Operátory

%, *, +, -, /, //