Az f üggvény definíciója a nevébõl, formális paramétereibõl és a függvénytörzsbõl áll. A törzs elmaradhat, ha a csukó zárójelet az external parancs követi. Ebben az esetben a függénytörzs más modulban van definiálva.
Ha a paraméterlista után inline kulcsszó következik, akkor a függvényhívást a fordító az inline utáni törzzsel helyettesíti.
A formális paramétert megelõzõ var kulcsszó mutatja, hogy az aktuális paramétert az adott függvény módosítja. Egyébként a függvény a paramétert konstansként használja. A függvény a változó kiszámolt értékével tér vissza a return után.
Nincs lehetõség függvények túlterhelésére. Az alábbi program lefutását követõen a hibaüzenet: Multiple function definition
A VIRT program általában modulokra oszlik. Minden modul külön fájlban van, a fájl kiterjesztése: .w
A modulok struktúrája megegyezik a program struktúrájával:
A use utasítás vezeti be azokat a modulokat, amiket az adott programban használunk.
A programot return zárja.
A program részei a fent bemutatott sorrendben követhetik csak egymást.
A VIRT program fordítása egy menetben történik, ezért az azonosító deklarációnak meg kell elõznie a használatot.
Az azonosítókat a fajtájától függõen a megfelelõ helyen kell deklarálni:
Alapértelmezésben a konstansok, globális függvények és publikus metódusok elérhetõek az adott modul határain belül. A uses utasítással ezeket importálhatjuk más modulokból.
A rendszer modult, ami tartalmazza a standard adattípusok reprezentációját, a globális függvényeket és változókat, minden VIRT program alapértelmezés szerint tartalmazza.
Azok a változók, amiket a global function body vagy method body -ban definiáltunk, azok nem használhatóak azokon kívül.Azok az azonosítók, amiket az implementation section-ban a local kulcsszóval vezetünk be, használhatóak az adott osztály minden metódusában de nem láthatóak az a szekción kívül.(szigorú csomagbazárás). A privát eljárások csak az adott osztály implementation section-jében elérhetõ.