보통 우리가 흔히쓰는 I/O는
프로그램 바깥 상태에 따라 출력이 따라지지만
함수형은 기본적으로 동일,입력 동일 처리가 맞음. I/O는 따지고보면 인풋 아웃풋인데, 항상 인풋이 같다고 동일한 상태를 보장하진 않음
근데 함수는 걍 존나 똑같은 입력 똑같은 처리를 기본 베이스로 하는거
모나드, 액터 모델 이런것들이 그걸 뒤받침하기 위한 결과물이라고 볼수있지
기본적으로 모나드는 I/O를 감싸기 위해서 외부 효과와 순수 함수를 구분짓기 위해서 나온것이기때문이지.
기본적으로 I/O는 파일이 쓰이거나, 콘솔 출력될때, 상태가 변할 수 있음. 따라서 외부로부터 영향을 받아 동일 입력 동일 아웃풋이 보장이 안되는데
이걸 방지하기위해서 저런 행위 자체를 감싸서 하나의 스테이트를 보장하기 위한걸 모나드라고 하는거임
댓글 0