عملیات accumulate را پیادهسازی کنید. این عملیات یک مجموعه و عملی را که باید روی هر عنصر مجموعه انجام شود میگیرد و مجموعهی جدیدی برمیگرداند که نتیجهی اعمال آن عمل روی هر عنصر از مجموعهی ورودی است.
با این مجموعه از اعداد:
و این عمل:
x => x * x)کد شما باید بتواند مجموعهی مربعها را تولید کند:
برای دیدن امضای مورد انتظار تابع، نگاهی به مجموعهی تست بیندازید.
به آن قابلیت collect/map/fmap/هرچه اسمش را بگذارید که کتابخانهی استانداردتان در اختیارتان میگذارد دست نزنید!
در عوض، این یکی را خودتان با ابزارهای پایهی دیگر حل کنید.
بهطور دقیقتر، شما مجاز نیستید از هیچیک از متدهای LINQ داخلی استفاده کنید.
از آنجا که accumulate یک IEnumerable برمیگرداند، اجرای آن تا زمانی که ToList() روی آن فراخوانی نشود به تعویق میافتد، و این ویژگی با متد Accumulate_is_lazy آزمایش میشود.
این تمرین از شما میخواهد که یک متد الحاقی بنویسید. برای اطلاعات بیشتر، این صفحه را ببینید.