Az előző példaban láthatjuk, hogy a tmp1 es tmp2 változókat csak az else ágban
deklaráljuk, és kezdeti értéket is csak itt kapnak. Ennek oka a 'G' nyelv u.n. 'lusta', vagy
'késleltetett' kiértékelési módszere, melynek lényege a következő: Ha egy függvény
alkalmazásához tartozó aktuális paraméter-kifejezés behelyettesitődik a függvény formális
paraméterébe, akkor az egész kifejezés helyettesitődik be, nem csak az érték. Ez azt is jelenti,
hogy a struktúra elemei csak akkor értékelődnek ki, ha megvizsgáljuk őket. Igy definiálhatunk
végtelen adatstruktúrákat, s hivatkozhatunk adott elemeire anélkül, hogy túllépnénk
erőforrásainkat. Meg kell még jegyeznünk, hogy a nyelv lehetőséget nyújt lista-elemek
függvényenként való alkalmazására:
[F1,F2,...,Fn] x => [F1 x,F2 x,...,Fn x]
(F1,...Fn függvények, x operandus, F1 x az F1 függvény alkalmazva az x operandusra)