누적

누적

쉬움

지침

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

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

  • 1, 2, 3, 4, 5

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

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

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

  • 1, 4, 9, 16, 25

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

제한 사항

표준 라이브러리가 제공하는 collect/map/fmap이든 뭐든, 그런 기능에는 손대지 마세요! 대신 다른 기본 도구를 써서 직접 풀어봐요.

힌트

이 연습 문제에서는 다음 F# 기능이 유용해요:

  • 꼬리 재귀 꼬리 재귀를 사용하면 입력이 큰 경우에도 스택 오버플로를 방지할 수 있어요. 이를 명시적으로 검사하는 테스트 케이스는 없지만, 꼬리 재귀를 사용하면 성능이 더 좋은 해법으로 이어져요. 꼬리 재귀에 관한 또 다른 좋은 자료는 이 블로그 글이에요.
  • 타입 추론 F# 컴파일러는 타입을 자동으로 추론할 수 있어요. 따라서 타입을 전혀 추가하지 않아도 되는 경우가 많아요. 이 기능이 어떻게 동작하는지와 장점에 대한 더 자세한 정보는 이 페이지를 참고해요.
GitHub에서 편집 링크가 새 창이나 탭에서 열려요
F# Exercism

누적 문제를 시작해 볼 준비가 됐나요?

Exercism에 가입하고 F# 트랙을 개념 18개연습 문제 148개, 그리고 실제 사람의 멘토링과 함께 배우고 익혀 보세요. 모두 무료예요.