Metode mogu definisati više listi parametara. Kada je metoda pozvana s manje listi parametara nego što ima, onda će to vratiti funkciju koja prima preostale liste parametara kao argumente.
Primjer:
object CurryTest extends App {
  def filter(xs: List[Int], p: Int => Boolean): List[Int] =
    if (xs.isEmpty) xs
    else if (p(xs.head)) xs.head :: filter(xs.tail, p)
    else filter(xs.tail, p)
  def modN(n: Int)(x: Int) = ((x % n) == 0)
  val nums = List(1, 2, 3, 4, 5, 6, 7, 8)
  println(filter(nums, modN(2)))
  println(filter(nums, modN(3)))
}
Napomena: metoda modN je parcijalno primijenjena u dva poziva filter; tj. samo prvi argument je ustvari primijenjen. 
Izraz modN(2) vraća funkciju tipa Int => Boolean i zato je mogući kandidat za drugi argument funkcije filter.
Rezultat gornjeg programa:
List(2,4,6,8)
List(3,6)
Contributors to this page:
Contents
- Uvod
 - Osnove
 - Sjedinjeni tipovi
 - Klase
 - Podrazumijevane vrijednosti parametara
 - Imenovani parametri
 - Trejtovi
 - Tuples
 - Kompozicija mixin klasa
 - Funkcije višeg reda
 - Ugniježdene metode
 - Curry-jevanje
 - Case klase
 - Podudaranje uzoraka (pattern matching)
 - Singlton objekti
 - Regularni izrazi
 - Ekstraktor objekti
 - For komprehensije
 - Generičke klase
 - Varijanse
 - Gornja granica tipa
 - Donja granica tipa
 - Unutarnje klase
 - Apstraktni tipovi
 - Složeni tipovi
 - Self-tipovi
 - Implicitni parametri
 - Implicitne konverzije
 - Polimorfne metode
 - Lokalno zaključivanje tipova (type inference)
 - Operatori
 - By-name parametri
 - Anotacije
 - Packages and Imports
 - Package Objects