−가독성과 비용도 따져야 한다. Hutton도 fold로 쓴 프로그램이 명시적 재귀보다 읽기 어려울 수 있다고 적었다.[각주 7] 결합 함수가 길어지면 평범한 foreach가 더 읽기 쉽다. 누산기를 단계마다 통째로 복사하면 전체 비용이 원소 수의 제곱에 비례해 늘어난다. (acc, s) => acc + s로 문자열을 이으면 단계마다 지금까지의 문자열 전체가 새 문자열로 복사되므로, 한 글자 문자열 1,000개를 이을 때 만들어지는 중간 문자열 길이의 합은 1 + 2 + ... + 1,000 = 500,500자다. 이럴 때는 StringBuilder를 누산기로 쓰거나 string.Concat, string.Join을 쓴다. 원소를 덧붙인 새 배열을 매번 만드는 누산기도 같은 문제가 있다.
+가독성과 비용도 따져야 한다. Hutton도 fold로 쓴 프로그램이 명시적 재귀보다 읽기 어려울 수 있다고 적었는데[각주 7], 결합 함수가 길어진다면 평범한 foreach로 쓰는 편이 더 읽기 쉽다. 누산기를 단계마다 통째로 복사하면 전체 비용이 원소 수의 제곱에 비례해 늘어난다. (acc, s) => acc + s로 문자열을 이으면 단계마다 지금까지의 문자열 전체가 새 문자열로 복사되므로, 한 글자 문자열 1,000개를 이을 때 만들어지는 중간 문자열 길이의 합은 1 + 2 + ... + 1,000 = 500,500자다. 이럴 때는 StringBuilder를 누산기로 쓰거나 string.Concat, string.Join을 쓴다. 원소를 덧붙인 새 배열을 매번 만드는 누산기도 같은 문제가 있다.