Immutable
kotlin 은 함수형 패러다임을 반영한다.
함수형 프로그래밍에서는 불변(immutable)값을 사용해 사이드이펙트를 제거한다.
원본 리스트를 수정하지 않고, 수정된 새로운 리스트를 생성해 반환한다.
함수적 자료구조에서 리스트를 수정하는 작업은, 기존 리스트는 유지하고 조작되는 부분만 새로 생성하기 때문에 오버헤드가 없다.
plus() 처럼 값을 변경할 때마다 새로운 리스트를 생성한다면 오버헤드가 클 수 있다고 생각할 수 있으나 함수적 자료구조 중 List 는 내부적으로 LinkedList 로 되어있고, 위의 경우 6을 추가했을때 완전히 새로운 리스트를 반환하는 것이 아니라, 기존의 List 에 6 만 추가한 것을 리턴하는 것이기 때문에 오버헤드는 그리 크지 않다.
Last updated