Scala'da özyinelemeli döngüler yazmak için daha iyi bir yol olup olmadığını merak ediyordum.Scala'da yinelemeli döngüler nasıl yapılır
def fib(n: Int) = {
def loop(a: BigInt = 0, b: BigInt = 1, n: Int = n): BigInt = {
if(n==0) a
else loop(b, a+b, n-1)
}
loop()
}
Ben a ve b maruz olacağını o zaman bu
def fib(n: Int, a: BigInt = 0, b: BigInt = 1): BigInt = {
if(n==0) a
else fib(n-1, b, a+b)
}
ama böyle yazmak ve artık yöntemi içinde kapsüllü olamazdı.
Bu nasıl yapıldığı oldukça fazladır (ilk örnek). İçteki 'def' ayrıca özel olmasını sağlar ve kuyruk kuyrukları için optimize edilebilir. – huynhjl
İkinci versiyon da kuyruk özlemi. Bu parametreleri Ağustos ayında Scala Language mail listesinden özel kılmak için bir yol eklemenin imkanını sordum ve sağır edici bir sessizlik/ilgisizlik ile karşılandı. http://www.scala-lang.org/node/10736 –
Kısa cevap: Hayır. –