Kysymys on siitä, miten todellinen, viitattu aliohjelma liitetään omaan viittausympäristöönsä, missä näkyvyysalueessa aliohjelma on.
def A(i:Int, P:Unit):Unit = { // P on muodollinen funktioparametri def B() = { // A:n sisäinen aliohjelma println(i) // tämän i:n merkitys on se kiinnostava kohta: }; // sidotaanko i ensimmäisessä vai toisessa (sisemmässä) A:n kutsussa // A:n algoritmi (so. A:n "pääohjelma"): if (i > 1) P // muodollisen funktioparametrin kutsu! else A(2, B) // funktio B annetaan todellisena parametrina rekursiivisessa kutsussa } // A:n määrittely päättyy def C() = {} // C on tyhjä funktio, A:n kanssa rinnakkainen // pääohjelma: A(1, C) // funktio C annetaan todellisena parametrinaTässä esimerkissä kyse on siitä, mihin A:n muodollisen parametrin i versioon B:ssä viitataan, kun A on kutsunut itseään rekursiivisesti. A:sta on kaksi aktivointia, jotka molemmat ovat määritelleet i:n, ja siis molemmilla on oma i.
Syvässä sidonnassa (deep binding) käytetään A:n ensimmäisen aktivoinnin i:tä, matalassa sidonnassa (shallow binding) viimeisimmän aktivoinnin i:tä.
Katso myös toisten harjoitusten tehtävää 12!
Tämä saattaa näyttää äärimmäisen keinotekoiselta ongelmalta, mutta valinta on erityisesti funktionaalisten kielten kohdalla mitä merkittävin päätös!