Aşağıdaki iki üst düzey işlev aynı sonucu verir, ancak ikisi arasındaki farkı anlamada sorun yaşıyorum. Aslında, anlamıyorum 1). Bir fonksiyonun ()
iki seti nasıl olabilir?Bu iki üst düzey işlev nasıl farklı?
1)
def sum(f: Int => Int) (a: Int, b: Int) = {
def loop(a: Int, acc: Int) : Int =
if (a > b) acc
else loop (a + 1, f(a) + acc)
loop (a, 0)
}
2)
def sum(f: Int => Int, a: Int, b: Int) = {
def loop(a: Int, acc: Int) : Int =
if (a > b) acc
else loop (a + 1, f(a) + acc)
loop (a, 0)
}
Scala fonksiyonlarının birden fazla parametre listesi olabilir ('toplam' ilk tanımında olduğu gibi). Bkz. Http://docs.scala-lang.org/tutorials/tour/currying.html – Jubobs
Bkz. Http://stackoverflow.com/questions/36314/what-is-currying –