input에 대해 output이 deterministic한 함수가 pure한 거 아님?근데 IO 같은 것들이 들어간 함수가 output으로 Optional 같은 wrapper class 내지는 type을 뱉는 건 함수의 output type을 일정하게 맞춰줄 뿐이지 그 값의 고정성을 보장해주지는 못하지 않음? 그러면 뭘 어떻게 하든 결국 순함수는 아닌 거잖아
io가 전형적인 side effect 잖슴 - dc App
애초에 순수성 보장해주는건 타입의 역할이 아니고 언어의 역할이다
그 값 자체는 deterministic한거 맞음 io 실행기 같은걸 통해서 사이드 이펙트를 연결하는거고 - dc App
io 타입을 다루는 함수에 io 타입 아무리 넣어도 결과가 같은게 보장되도록 래핑타입을 설계하니까 순수한걸 보장할 수 있는거 - dc App
특별한 값이라 io 실행기로 무언가 할 수 있다 정도만 있는거고 io 실행기가 없으면 그냥 값 다루는거랑 똑같음 - dc App
내가 너한테 f:x -> x+1 같은 함수를 던져줬을때 니가 x에 무슨 값을 넣을지 모른다고 f를 함수가 아니라고 하지는 않잖음