http://morris.xsdeny.net/works/side-effect.txt
'functional will save you from side-effect
'
프로그래밍을 하다보면 많은 side-effect에 접하게 됩니다.이 글에서는 절차언어의 대표적인 c와 함수언어의 ML에 대해서 얘기를 할 것 입니다. c는 작고 간단하면서도 편리한 기능을 많이 제공해줍니다.
int i = 0; printf("%d %d", ++i, i++);
를 x86에서 vc, bc, gcc등으로 돌릴 경우 값을 예측하실 수 있습니까? 실제로 돌려보시기 바랍니다. 이런 실행도중에 값을 바꾸는 것은 매우 ugly한 부분으로 원치않은 side-effect를 발생시키게 됩니다. functional langauge에서는 수학에 가깝게 표현하려 하기때문에 실행 도중에 값을 치환하는 행위나 값 자체를 무분별하게 바꾸는 행위를 ugly한 부분으로 보고 제거 하려고 노력하고 있으며 실제로 그런 부분을 모두 제거한 haskell이라는 언어도 이미 나와있고 pure functional language라는 이름으로 호평을 얻고 있습니다.