0 امتیاز
قبل در برنامه نویسی توسط (1.1هزار امتیاز)
کلاس List در Scala متدی با نام reduce دارد، کاربرد این متد چیست؟

1 پاسخ

+1 امتیاز
قبل توسط (1.2هزار امتیاز)
ویرایش شده قبل توسط
 
بهترین پاسخ

reduce خیلی شبیه به fold عمل میکنه ، با این تفاوت که مقدار اولیه accumulator رو مشخص نمی کنیم و در ضمن نوع بازگشتی تابع از جنس اجزای لیست باید باشه.

بزارید با مثال بگم ، اگر شما یک لیست از اعداد داشته باشید و بخواهید مجموع اونها رو حساب کنید از شکل زیر استفاده می کنیم :

val myList = List(1,2,3,4,5)
myList.reduce( (acc,item) => acc+item)

این نهایتا به ما یک Int بر میگردونه ، حالا فرض کن می خواهیم رشته چسبیده اینها به هم رو بدست بیاریم با تابع fold اینکار رو میکنم :

val anotherList = List(1,2,3,4,5)
anotherList.fold("")((acc,item)=> String.valueOf(acc)+String.valueOf(item))

می بینیم که میتونیم مقدار String رو برگردونیم از طریق fold ولی همچین کاری رو با ‌reduce نمیشه انجام داد. (فک میکنم بشه گفت reduce نوع خاصی از fold هست)

سوالات مشابه

0 امتیاز
0 پاسخ 338 بازدید
0 امتیاز
1 پاسخ 374 بازدید
سوال شده 9 سال قبل در برنامه نویسی توسط Saeed Zarinfam (1.1هزار امتیاز)
0 امتیاز
1 پاسخ 453 بازدید
0 امتیاز
1 پاسخ 249 بازدید
0 امتیاز
1 پاسخ 618 بازدید
سوال شده 8 سال قبل در برنامه نویسی توسط Saeed Zarinfam (1.1هزار امتیاز)
+1 امتیاز
1 پاسخ 414 بازدید
سوال شده 9 سال قبل در برنامه نویسی توسط Saeed Zarinfam (1.1هزار امتیاز)
0 امتیاز
1 پاسخ 648 بازدید
+2 امتیاز
1 پاسخ 817 بازدید
...