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 پاسخ 335 بازدید
0 امتیاز
1 پاسخ 371 بازدید
سوال شده 9 سال قبل در برنامه نویسی توسط Saeed Zarinfam (1.1هزار امتیاز)
0 امتیاز
1 پاسخ 448 بازدید
0 امتیاز
1 پاسخ 245 بازدید
0 امتیاز
1 پاسخ 612 بازدید
سوال شده 8 سال قبل در برنامه نویسی توسط Saeed Zarinfam (1.1هزار امتیاز)
+1 امتیاز
1 پاسخ 412 بازدید
سوال شده 9 سال قبل در برنامه نویسی توسط Saeed Zarinfam (1.1هزار امتیاز)
0 امتیاز
1 پاسخ 638 بازدید
+2 امتیاز
1 پاسخ 803 بازدید
...