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 پاسخ 337 بازدید
0 امتیاز
1 پاسخ 373 بازدید
سوال شده 9 سال قبل در برنامه نویسی توسط Saeed Zarinfam (1.1هزار امتیاز)
0 امتیاز
1 پاسخ 452 بازدید
0 امتیاز
1 پاسخ 247 بازدید
0 امتیاز
1 پاسخ 616 بازدید
سوال شده 8 سال قبل در برنامه نویسی توسط Saeed Zarinfam (1.1هزار امتیاز)
+1 امتیاز
1 پاسخ 412 بازدید
سوال شده 9 سال قبل در برنامه نویسی توسط Saeed Zarinfam (1.1هزار امتیاز)
0 امتیاز
1 پاسخ 647 بازدید
+2 امتیاز
1 پاسخ 811 بازدید
...