명령형 언어 vs 함수형 언어

명령형 언어

함수형 언어

차이점

함수형 언어에서 모든 데이터는 변경이 불가능 해야한다는게 무슨 뜻인가?

수학에서 변수라는 것은 x라는 걸 선언했을 때 그 값이 중간에 변하지는 않음

x에 그 추상화된 값을 공통적으로 이름을 지었을 뿐이지 그게 중간에 변경되지는 않음

수학시간에 x = x + 1 이런 일이 존재하지 않음 x 랑 x + 1이 같다라는 것이 논리적으로 이해가 안됨

명령형 프로그램을 하면서 자연적으로 배우면서 x 에 어떤 값이 있고 x 에 +1 을 하여 다시 할당한다고 자연스럽게 습득

원래 variable이란 개념은 값이 변할 수 있다라기보단 어떤 값에 대해서 이름을 정하고 원하는 알고리즘을 수행해서 결과를 도출해낼 수 있는게 실제로 변수의 개념

일반적인 명령형 언어에서도 객체 상태에 대해서 불변한 상태로 만들고 개발을 할 수 있음

그렇다면 함수형 언어에서 모든 변수가 불변해야하는가?