انباشتن

انباشتن

آسان

دستورالعمل‌ها

عملیات accumulate را پیاده‌سازی کنید. این عملیات یک مجموعه و عملی را که باید روی هر عنصر مجموعه انجام شود می‌گیرد و مجموعه‌ی جدیدی برمی‌گرداند که نتیجه‌ی اعمال آن عمل روی هر عنصر از مجموعه‌ی ورودی است.

با این مجموعه از اعداد:

  • ۱، ۲، ۳، ۴، ۵

و این عمل:

  • مربع کردن یک عدد (x => x * x)

کد شما باید بتواند مجموعه‌ی مربع‌ها را تولید کند:

  • ۱، ۴، ۹، ۱۶، ۲۵

برای دیدن امضای مورد انتظار تابع، نگاهی به مجموعه‌ی تست بیندازید.

محدودیت‌ها

به آن قابلیت collect/map/fmap/هرچه اسمش را بگذارید که کتابخانه‌ی استانداردتان در اختیارتان می‌گذارد دست نزنید! در عوض، این یکی را خودتان با ابزارهای پایه‌ی دیگر حل کنید.

پیشرفته

معمولاً هنگام تعریف متد برای یک Enumerable عمومی، برای حالتی که بلوکی پاس داده نشود، #to_enum را فراخوانی می‌کنند.

در ادامه یک تست دیگر هست که می‌توانید اضافه کنید:

def test_accumulate_when_block_is_deferred
  skip
  accumulate_enumerator = [1, 2, 3].accumulate
  accumulated_result = accumulate_enumerator.map do |number|
    number * number
  end
  assert_equal [1, 4, 9], accumulated_result
end
ویرایش از طریق GitHub این لینک در پنجره یا زبانه‌ی جدیدی باز می‌شود
Ruby Exercism

آماده‌اید انباشتن را شروع کنید؟

در Exercism ثبت‌نام کنید تا Ruby را همراه با 21 مفهوم121 تمرین و مربی‌گری انسانی واقعی یاد بگیرید و در آن استاد شوید، همه‌ی این‌ها رایگان.