Skip to content

Latest commit

 

History

History
44 lines (32 loc) · 1022 Bytes

multiple-parameter-lists.md

File metadata and controls

44 lines (32 loc) · 1022 Bytes
layouttitlelanguagepartofnumnext-pageprevious-page
tour
Curry-jevanje
ba
scala-tour
10
case-classes
nested-functions

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:

objectCurryTestextendsApp { deffilter(xs: List[Int], p: Int=>Boolean):List[Int] =if (xs.isEmpty) xs elseif (p(xs.head)) xs.head :: filter(xs.tail, p) else filter(xs.tail, p) defmodN(n: Int)(x: Int) = ((x % n) ==0) valnums=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) 
close