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 پاسخ 246 بازدید
0 امتیاز
1 پاسخ 268 بازدید
سوال شده 8 سال قبل در برنامه نویسی توسط Saeed Zarinfam (1.1هزار امتیاز)
0 امتیاز
1 پاسخ 374 بازدید
0 امتیاز
1 پاسخ 159 بازدید
0 امتیاز
1 پاسخ 525 بازدید
سوال شده 8 سال قبل در برنامه نویسی توسط Saeed Zarinfam (1.1هزار امتیاز)
+1 امتیاز
1 پاسخ 298 بازدید
سوال شده 8 سال قبل در برنامه نویسی توسط Saeed Zarinfam (1.1هزار امتیاز)
0 امتیاز
1 پاسخ 543 بازدید
+2 امتیاز
1 پاسخ 610 بازدید
...