পুনরাবৃত্তি করার আরও কয়েকটি উপায়:
scala> xs.foreach (println)
first
second
third
ভবিষ্যদ্বাণী, এবং অনুরূপ, মানচিত্র, যা কিছু ফেরত দেবে (ফাংশনের ফলাফল যা মুদ্রণের জন্য, ইউনিট, সুতরাং ইউনিটের একটি তালিকা)
scala> val lens = for (x <- xs) yield (x.length)
lens: Array[Int] = Array(5, 6, 5)
সূচকের সাথে নয়, উপাদানগুলির সাথে কাজ করুন
scala> ("" /: xs) (_ + _)
res21: java.lang.String = firstsecondthird
ভাঁজ
for(int i=0, j=0; i+j<100; i+=j*2, j+=i+2) {...}
পুনরাবৃত্তি দিয়ে করা যেতে পারে:
def ijIter (i: Int = 0, j: Int = 0, carry: Int = 0) : Int =
if (i + j >= 100) carry else
ijIter (i+2*j, j+i+2, carry / 3 + 2 * i - 4 * j + 10)
বহনকারী অংশটি কেবলমাত্র উদাহরণ এবং i এবং j এর সাথে কিছু করা। এটি কোন ইন্টি হতে হবে না।
সহজ স্টাফ জন্য, লুপ জন্য স্বাভাবিক কাছাকাছি:
scala> (1 until 4)
res43: scala.collection.immutable.Range with scala.collection.immutable.Range.ByOne = Range(1, 2, 3)
scala> (0 to 8 by 2)
res44: scala.collection.immutable.Range = Range(0, 2, 4, 6, 8)
scala> (26 to 13 by -3)
res45: scala.collection.immutable.Range = Range(26, 23, 20, 17, 14)
বা আদেশ ছাড়াই:
List (1, 3, 2, 5, 9, 7).foreach (print)