C:ssä (ja Javassa yms.) kaikki "funktiot" sijaitsevat samalla tasolla; kielen aliohjelmarakenne on litteä.
Scalalla voidaan ohjelmoida seuraavaan tyyliin:
def swappauttelua(a:Int, b:Int) = { var x = a var y = b def swap() { // tyhjät sulkeet eivät välttämättömät val apu = x x = y y = apu } println(x + " " + y) swap() // tyhjät sulkeet eivät välttämättömät println(x + " " + y) } swappauttelua(1,2)Vastaava sisäkkäisyys on mahdollista myös lohkoissa (vrt. Javaan, joka sallii lohkot, mutta vaatii silti metodin sisällä muuttujanimien yksikäsitteisyyden):
var i=1; var j=2; var k=3; println(i + " " + j + " " + k) {var i=10; var j=20; // uudelleenmääritellään i ja j println(i + " " + j + " " + k) {var i=100 // uudelleenmääritellään i println(i + " " + j + " " + k) } println(i + " " + j + " " + k) } println(i + " " + j + " " + k)Tulostus:
1 2 3 10 20 3 100 20 3 10 20 3 1 2 3