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 پاسخ 252 بازدید
0 امتیاز
1 پاسخ 273 بازدید
سوال شده 8 سال قبل در برنامه نویسی توسط Saeed Zarinfam (1.1هزار امتیاز)
0 امتیاز
1 پاسخ 380 بازدید
0 امتیاز
1 پاسخ 167 بازدید
0 امتیاز
1 پاسخ 531 بازدید
سوال شده 8 سال قبل در برنامه نویسی توسط Saeed Zarinfam (1.1هزار امتیاز)
+1 امتیاز
1 پاسخ 324 بازدید
سوال شده 8 سال قبل در برنامه نویسی توسط Saeed Zarinfam (1.1هزار امتیاز)
0 امتیاز
1 پاسخ 557 بازدید
+2 امتیاز
1 پاسخ 623 بازدید
...