Nixの遅延評価でスーパーマリオを動かす:属性パスがボタン入力に

Super Mario Derivations

Nixの遅延評価でスーパーマリオを動かす:属性パスがボタン入力に

Nix言語の遅延評価を利用し、属性パスをスーパーマリオブラザーズ3のボタン入力列として解釈する実験。各ボタン押下が個別のderivationとなり、前のフレームのセーブステートを入力として次のフレームを生成。これにより、ストアがエミュレータのセーブステート履歴となり、分岐や追記が効率的に行える。さらに、属性パスの評価は線形時間で、最大約2万回の入力まで可能。このアイデアは、属性パスが単なる名前ではなくプログラムであることを示す。

属性パスは、評価者が歩きながら必要なものを生成していくプログラムなのだ。
  1. setheron

    ここでこれを見るのは楽しいですね。

    これはDEFCON34とNix Vegas[1]に向かう途中(飛行機の中で)に書きました。

    Nixコミュニティにずっと捕まっていたので、DEFCON本体をぶらぶら見て回る機会すらありませんでした!

    3つのトークを行いましたが、公開されたらサイト[2]で更新します。

    [1]: https://nix.vegas

    [2]: https://fzakaria.com/talks

  2. __MatrixMan__

    わあ、なんて楽しいんだ!

    もっと退屈な話をすると...このパターンをドキュメントのスクリーンショットに使えるかもしれません。PRレビュー中に、そのPRで変更されたスクリーンショットを周囲のドキュメントと一緒に表示するのは、良い健全性チェックになるでしょう。

    それらは意味のある意図した変更で、レビュアーにとって有用な文脈になるかもしれません。あるいは壊れていて、望むスクリーンショットを得るために別の導出が必要になっただけでなく、開始点からスクリーンショットに至る経路も変わったので、散文も変更する必要があることを示しているかもしれません。

  3. JHonaker

    これは本当に楽しいNixの悪用ですね。とても面白く読みました。

この日のほかの記事

2026-08-14