F#으로 게임보이 에뮬레이터를 만들었다
512개 옵코드를 discriminated union으로 58개 명령어로 줄이고, 불법 상태를 컴파일 타임에 차단한 설계가 인상적이다. 순수 함수형에서 출발했지만 16KB 메모리를 매 프레임 복사하는 건 미친 짓이라며 가변성을 수용한 현실적 판단도 좋다. DU 하나 제거하자 FPS가 2배, 릴리즈 모드 전환으로 10배 — .NET의 debug/release 격차가 이 정도인 줄 몰랐다. AI는 코드 리뷰와 20시간짜리 타이머 버그 발견에 썼다고 솔직히 밝힌 점도 호감.
↗ nickkossolapov.github.io