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

Nix言語の遅延評価を利用し、属性パスをスーパーマリオブラザーズ3のボタン入力列として解釈する実験。各ボタン押下が個別のderivationとなり、前のフレームのセーブステートを入力として次のフレームを生成。これにより、ストアがエミュレータのセーブステート履歴となり、分岐や追記が効率的に行える。さらに、属性パスの評価は線形時間で、最大約2万回の入力まで可能。このアイデアは、属性パスが単なる名前ではなくプログラムであることを示す。
属性パスは、評価者が歩きながら必要なものを生成していくプログラムなのだ。
HNでの議論
18- setheron
ここでこれを見るのは楽しいですね。
これはDEFCON34とNix Vegas[1]に向かう途中(飛行機の中で)に書きました。
Nixコミュニティにずっと捕まっていたので、DEFCON本体をぶらぶら見て回る機会すらありませんでした!
3つのトークを行いましたが、公開されたらサイト[2]で更新します。
[1]: https://nix.vegas
- __MatrixMan__
わあ、なんて楽しいんだ!
もっと退屈な話をすると...このパターンをドキュメントのスクリーンショットに使えるかもしれません。PRレビュー中に、そのPRで変更されたスクリーンショットを周囲のドキュメントと一緒に表示するのは、良い健全性チェックになるでしょう。
それらは意味のある意図した変更で、レビュアーにとって有用な文脈になるかもしれません。あるいは壊れていて、望むスクリーンショットを得るために別の導出が必要になっただけでなく、開始点からスクリーンショットに至る経路も変わったので、散文も変更する必要があることを示しているかもしれません。
- JHonaker
これは本当に楽しいNixの悪用ですね。とても面白く読みました。