readLn' 랑 print' 내부에 들어있는 람다함수만
네이티브 함수를 써서 C코드로 부작용을 일으키게 만들어준다면 진짜 IO 모나드와 동작방식이 똑같지 않을까 싶습니다
생각보다 엄청 쉬웠어요.
하스켈이 람다를 통해 함수를 새롭게 만들어서 MyIO 타입에 집어넣는데
이 방식이 굉장히 고수준이네요
함수 하나에 들어가야 하는 데이터가 전부 들어가게 됩니다.
클로저라는거죠.
우후훗
readLn' 랑 print' 내부에 들어있는 람다함수만
네이티브 함수를 써서 C코드로 부작용을 일으키게 만들어준다면 진짜 IO 모나드와 동작방식이 똑같지 않을까 싶습니다
생각보다 엄청 쉬웠어요.
하스켈이 람다를 통해 함수를 새롭게 만들어서 MyIO 타입에 집어넣는데
이 방식이 굉장히 고수준이네요
함수 하나에 들어가야 하는 데이터가 전부 들어가게 됩니다.
클로저라는거죠.
우후훗
이 구현은 어쩌면, 이런 생각을 들게할수도 있습니다. 뭐야 IO 를 써서 myIO를 구현했잖아? 그냥 래퍼잖아? 라고 살짝 다릅니다. unsafePerformIO 를 모나드 전체에 실행시키는게 아니고, 부작용을 발생시키기 위해서만 기본블록에 대해서만 실행시킵니다. 만약 네이티브 함수로 부작용을 발생시킬 수 있다면, 그거 넣으면 IO 모나드를 완전히 제거 가능합니다
zz
ㄷㄷ
딱국추