map(f,map(g,map(h,list)))


이러면 list는 몇번 복사될까?
3번?
ㄴㄴ 1번이다

저렇게 써도 멀쩡한 언어라면
map(compose(f,g,h),list) 처럼 되게 해줌
(compose는 합성함수를 만든다)

사이드이펙트가 없는게 보장이 되서
한번 복사하고 f,g,h를 적용하는거랑
복사-적용-복사-적용...이 동일한 결과를 내놓으니까
가능한 최적화임.

아무튼 함슬람합시다.