Az Algol68 programozási nyelv

Operátorok



Operátorok definiálása az op kulcsszóval történik, hasonlóan, mint egy eljárásé. Paramétere és vissztérési értéke tetszőleges módú lehet. Új operátorok definiálása és a már meglévők túlterhelése is lehetséges. Akár a predefinit típusok predefinit operátorait is lecserélhetjük. A fordító először megnézi van-e az operandusok módjának megfelelő, ha nem akkor típuskényszerítés.

Egy példa:

begin int n; read(n); mode vector = [1:n] real; vector v1,v2,v3,v4; op + = (vector x,y) vector: begin vector sum; for i to upb sum; do sum[i]:=x[i]+y[i] od; sum; end; read((v1,v2,v3)); v4 := v1 + v2 + v3; print(v4); op * = (int n, proc void p) void: to n do p od; proc emptyline = void:print(new line); 10*emptyline;

Operátorok prioritása: (megadhatjuk a sorrendet!)

Az operátorok prioritása felüldefiniálható a prio kulcsszóval. Egyoperandusú műveletek prioritása 10 és nem lehet megváltoztatni ezt, a kétoperandusú műveletek prioritása 1-9 között változhat.

prio + = 3, * = 2; print(6+3*5); # (6+3)*5=45 lesz az eredmény!!! # end
A kitevő prioritását nem változtathatjuk, mindig 10-es érték!