A HUME programozási nyelv

Típusok, típuskonstrukciók



Alaptípusok

Név Leírás Műveletek
bool Logikai típus, értékei: true, false && || not < <= == >= > !=
char 8 bites, ISO Latin-1-eskódolású karakterek
például: 'H', 'a', ' '
< <= == >= > !=
word méret "méret"-nyi biten ábrázolt számok + - * div mod
** — hatvány
lshl lshr — logikailag balra/jobbra shiftel
ashl ashr — aritmetikailag balra/jobbra shiftel
rotl rotr — ballra/jobbra forgat
bittest bitset bitclr — bit teszt/beállítás
^& ^| ^ ~ — bitműveletek
< <= == >= > !=
int méret adott méretnyi bit-en ábrázolt 2es komplemens ineteger + - * div mod
** — hatvány
< <= == >= > !=
float méret adott méretnyi bit-en ábrázolt lebegőpontos szám + - * /
sin cos tan asin acos atan
sinh cosh tanh atan2
log log10 ln exp
sqrt
** — hatvány
< <= == >= > !=
string méret adott hosszú string
például: "", "Alma"
< <= == >= > !=
@ ++ length

Típuskonstrukciók

Név Leírás Műveletek
vektor fix hosszú sorozat, ahol az elemek típusa megegyezik length
vecdef, vecmake, vecmap, vecfoldr
update
++ — vektor konkatenáció
< <= == > >= !=
tuple fix hosszú sorozat, ahol az elemek típusa különböző lehet < <= == > >= !=
lista változó hosszú sorozat, ahol az elemek típusa megegyezik : — lista konstruktor
length
hd tl
++ — lista konkatenáció
< <= == > >= !=

Típusdeklarációk

HUME-ban kétféle típusdeklaráció létezik:

A fenti példából is látszik, hogy összetett típusok rekurzívan is definiálhatók. A felhasználó által definiált típusok (akár új típus, akár szinoníma) ugyanúgy használhatók, mint a beépített típusok.

Típuskonverziók

Két lehetőség van típuskonverzióra: