Az Idris vezérlési szerkezetei eltérnek az imperatív nyelvek vezérlési szerkezeteitől. A programok megírása során nem szekvenciák, elágazások és ciklusok, hanem inkább függvényalkalmazás, kompozíció, mintaillesztés, őrfeltételek és rekurzió segítségével építkezünk. Az alábbiakban láthatjuk a legfontosabb szintaktikai elemeket, vezérlési szerkezeteket, amelyek a programírást segítik.
Az if szerkezetben e1-nek Bool-nak kell lennie, míg e2-nek és e3-nak azonos típusúnak kell lennie.
Az esetszétválasztás szintaxisa a következő:
A predikátum Bool típusú, a két kifejezés azonos típusú. A konstrukció valójában a nyelv szintaxisbővítési lehetőségét használja ki.
A let segítségével köztes értékeket számolhatunk ki, és köthetünk "változókhoz", vagy mintaillesztéseket végezhetünk el. A kötött "változók" scope-ja csak a let-kifejezés belseje.
A do-szintaxis segítségével monádokat használhatunk egy egyszerűsített jelöléssel. Az ilyen szintaxissal megírt program hasonlít egy imperatív kódra (mintha egy szekvencia lenne).
Átírási lépések:
A with-szintaxis tulajdonképpen az őrfeltételek egyfajta általánosítása. Segítségével függő mintaillesztéseket végezhetünk. Az alábbi példa a with használatát mutatja be. A parity függvényt és a hozzá hasonló függvényeket nézeteknek nevezzük. A nézet segítségével mintát illesztünk a natToBin argumentumára, a lehetséges alakokat a függőleges vonalak után adjuk meg, mintha azok őrfeltételek lennének (even és odd). A függőleges vonalaktól balra is minták szerepelnek (függő minták, hisz a k parításától függnek). A minták egyes elemeit (j) felhasználjuk a visszatérési érték meghatározásánál az egyenlőségjelektől jobbra.