Elágazás
A SETL esetén az elágazás a következőképpen néz ki:
if feltétel
then
utasitas;
utasitas;
utasitas;
else
utasitas;
utasitas;
utasitas;
end if;
Az utasítás blokkokat pontosvesszővel választjuk el.
Az elágazást a következő utasításokkal lehet lezárni:
end;
end if;
end if tokens;
Mivel az elágazás maga is egy blokk, így annak végére is ki kell rakni a pontosvesszőt.
Esetszétválasztásos elágazás
Esetszétválasztás esetén a case
elágazást használjuk:
case kifejezés of
(felt1): blokk1
(felt2): blokk2
else blokk
end CASE; $ vagy end; end case tokens;
Ciklus
Ciklusok esetén beszélhetünk loop
, for
, while
ciklusokról.
loop iterátor do
blokk
end loop; $ vagy end; vagy end loop tokens;
$egy másik alternatíva
( iterátor )
blokk
end; $ vagy end tokens;
$itt az iterátor helyére írható 'for x in set' számláló ciklus, vagy 'while felt. do' ciklus
$mindkét forma az utasítás blokkok ismételt végrehajtását eredményezi, az iterátor ellenörzése alatt
$a ciklus belsejében bármely utasítás használható, ahogyan a következő két utasítás is:
$a ciklus törzsében levő maradék utasításokat kihagyja, majd folytatja a következő iterációval
continue;
continue tokens;
$a ciklus terminálását eredményezi
quit;
quit tokens;
Kövezkezzék egy példa egy teljes SETL programra. Bár nem egy túl hatékony program, de szemléltetésnek megteszi.
program primszam;
$ Ez a program kilistázza a kapott értékek közül a prímszámokat.
read(n); $ beolvassa az értékeket
primszam := { }; $ definiálunk egy halmazt a kimeneti értékeknek
p := 2; $ beállítjuk a kezdeti értéket a vizsgálathoz
$ leellenőrizzük, hogy a beolvasott érték prímszám-e
loop while p < n do $ addig megy a ciklus, amíg p kisebb mint n
if notexists t in primszam | p mod t = 0 then
print(p); $ nem osztója, tehát prím
primszam with:= p; $ hozzáajuk a primszam halmazhoz
end if;
p := p + 1; $ továbblépünk a következő értékre
end loop;
end program primszam;
A SETL nyelven írt programok legfőbb jellemzője, hogy valamilyen
összetett adatszerkezettel dolgoznak. A fordítóprogram ezeket egy
fajta módon kezeli le, és nem veszi figyelembe, hogy milyen
reprezentációval lehetne a hatékonyságot növelni. A SETL viszont egy
adatrperezentációs alnyelvvel gondoskodik ennek a problémának a
megoldásáról.