Ez egy nagyon kényelmes kiterjesztése a Java-nak. Ahelyett, hogy egy függvényt definiálnánk az osztályhoz (amit úgyis csak egy helyen használnánk), lehetőségünk van függvények lokális definiálására.
A fun(argtype1 var1 , ..., argtypen varn) -> resulttype { statements } kifejezés egy (argtype1, ..., argtypen) -> resulttype típusú függvényt ad vissza (lásd: 'Függvény típusú változó' című fejezet). A névtelen függvények a definiálásuk környezetében lévő összes változót látják. Vizsgáljuk meg ezt két rövid példán:
Mint láthatjuk, a makeIncr() minden hívásánál visszaad egy új inkrementer függvényt. Minden ilyen függvény rendelkezni fog egy "saját" count változóval, melynek kezdeti értéke a makeIncr függvényben lévő lokális count változó értékével fog megegyezni. Ez a példa a következőket fogja kiírni futtatáskor:
Igazi ereje a névtelen függvényeknek a következő példán mutatkozik meg. Van egy traverse függvényünk ami egy bináris fát jár be inorder bejárással és minden csúcsra alkalmazza a paraméterül adott függvényt. Egy egészeket tartalmazó fának a csúcsait így lehetne összeadni: