Nix의 지연 평가로 슈퍼 마리오 브라더스 3를 플레이하는 방법

Super Mario Derivations

Nix의 지연 평가로 슈퍼 마리오 브라더스 3를 플레이하는 방법

Nix 언어의 지연 평가 덕분에 무한히 깊은 속성 집합을 만들 수 있습니다. 이 아이디어를 확장하여, 게임의 각 프레임을 파생(derivation)으로 만들고 버튼 입력을 속성 경로로 표현했습니다. 이를 통해 슈퍼 마리오 브라더스 3의 특정 프레임을 Nix 스토어에서 재현할 수 있으며, 입력 시퀀스를 파일로 제공하면 20,000번의 버튼 입력도 처리할 수 있습니다. 각 프레임은 별도의 파생이므로 이전 프레임을 재사용할 수 있어 효율적입니다.

속성 경로는 이름이 아니라 프로그램입니다. 평가자가 필요에 따라 생성하는 일련의 단계입니다.
  1. setheron

    재미있게 봐서 반갑네요. 저는 DEFCON34와 Nix Vegas[1]로 가는 비행기 안에서 이걸 썼습니다. Nix 커뮤니티가 저를 내내 붙잡아 두는 바람에 DEFCON 본 행사를 둘러볼 기회조차 없었어요! 발표 자료가 공개되면 제 사이트[2]에 3개의 발표 내용을 업데이트할 예정입니다. [1]: https://nix.vegas [2]: https://fzakaria.com/talks

  2. JHonaker

    Nix를 이렇게 엄청나게 미친 방식으로 남용하다니, 정말 재밌게 읽었습니다.

  3. __MatrixMan__

    와, 정말 재미있네요! 더 지루한 얘기를 하자면... 이 패턴을 문서 스크린샷에 활용할 수 있을 것 같아요. PR 리뷰 중에 해당 PR로 변경된 스크린샷을 주변 문서와 함께 보여주면 꽤 유용한 검증 수단이 될 거예요. 어쩌면 리뷰어에게 유용한 맥락을 제공하는 의미 있고 의도된 변경일 수도 있고, 어쩌면 깨진 변경이라서 원하는 스크린샷을 얻으려면 이제 다른 파생물이 필요하다는 것뿐만 아니라, 시작점에서 스크린샷까지의 경로도 바뀌었으니 본문도 수정해야 한다는 것을 알려줄 수도 있겠죠.

이 날의 다른 글

2026-08-15