누적

누적

쉬움

지침

accumulate 연산을 구현해요. 이 연산은 컬렉션과 컬렉션의 각 원소에 수행할 연산을 받아서, 입력 컬렉션의 각 원소에 그 연산을 적용한 결과를 담은 새 컬렉션을 반환해요.

숫자 컬렉션이 다음과 같다고 해봐요:

  • 1, 2, 3, 4, 5

그리고 연산이 다음과 같다고 해봐요:

  • 숫자를 제곱하기 (x => x * x)

그러면 코드는 제곱으로 이루어진 컬렉션을 만들어 낼 수 있어야 해요:

  • 1, 4, 9, 16, 25

기대하는 함수 시그니처를 확인하려면 테스트 스위트를 살펴봐요.

제한 사항

표준 라이브러리가 제공하는 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개, 그리고 실제 사람의 멘토링과 함께 배우고 익혀 보세요. 모두 무료예요.