অথবা আপনি নিজের তৈরি করতে চাইলে:
def split[A](xs: List[A], n: Int): List[List[A]] = {
if (xs.size <= n) xs :: Nil
else (xs take n) :: split(xs drop n, n)
}
ব্যবহার করুন:
scala> split(List(1,2,3,4,5,6,"seven"), 4)
res15: List[List[Any]] = List(List(1, 2, 3, 4), List(5, 6, seven))
সম্পাদনা করুন : 2 বছর পরে এটি পর্যালোচনা করার পরে, আমি এই প্রয়োগের সুপারিশ করব না যেহেতু size
ও (এন), এবং সুতরাং এই পদ্ধতিটি ও (এন ^ 2), যা বিল্ট-ইন পদ্ধতিটি বৃহত তালিকার জন্য দ্রুততর হয়ে ওঠে তা ব্যাখ্যা করবে, নীচে মন্তব্য হিসাবে উল্লিখিত। আপনি নিম্নলিখিত হিসাবে দক্ষতার সাথে প্রয়োগ করতে পারেন:
def split[A](xs: List[A], n: Int): List[List[A]] =
if (xs.isEmpty) Nil
else (xs take n) :: split(xs drop n, n)
বা এমনকি (সামান্য) আরও দক্ষতার সাথে ব্যবহার করে splitAt
:
def split[A](xs: List[A], n: Int): List[List[A]] =
if (xs.isEmpty) Nil
else {
val (ys, zs) = xs.splitAt(n)
ys :: split(zs, n)
}