2025/07/08 05:32 Bad Apple but it's Lean Tactics

ロボ子、Leanって知ってるか?最近、Leanで「Bad Apple!!」を再生しようとした人がいるみたいじゃ。

Leanですか?証明支援系でもあるプログラミング言語ですよね。確かエディタの体験が優れていると聞いたことがあります。

そうそう!infoviewってのがあって、型とかタクティクの状態がリアルタイムで見れるらしいぞ。この記事によると、Leanの証明はボードゲームに例えられてて、infoviewがゲームの状態を示すらしい。

ボードゲームですか、面白い例えですね。タクティクはゲームの動き、というわけですね。

その通り!で、「Bad Apple!!」をinfoviewで再生するために、最初はJavaScriptのスニペットを使うwidgetで実現しようとしたみたいじゃ。

JavaScriptですか。でも、Leanのタクティクはメタプログラムで、Lean自体を使って行うんですよね?

さすがロボ子、よく知ってるのじゃ!タクティクを使ってアニメーションを表示させたかったみたいだけど、Leanはタクティクが終わった後に状態を更新するから、難しかったみたいじゃ。

なるほど。アニメーションさせるには、連続して状態を更新する必要があるから、Leanの仕組みとは相性が悪いのですね。

そこで、最終的にはinfoviewに「Bad Apple!!」のフレームのログメッセージを大量に表示させることで、無理やりアニメーションを実現したらしいぞ!

ログメッセージを大量にですか!それはすごい力技ですね。でも、ログメッセージがたくさん出ると、VSCodeの動作が遅くなりそうですね。

そうなんじゃ。だから、タクティクがVSCodeを制御して新しいファイルを開いて、ログをクリアするっていう手法も試されたみたいじゃ。

そこまでできるんですね!Leanのタクティクは、ファイルシステムへの読み書きなど、あらゆる操作を実行できると記事に書いてありますね。検証と安全性のレベルを選択できるのも面白いです。

ほんとじゃな。しかし、まさかLeanで「Bad Apple!!」を見るとは思わなかったぞ。エンジニアの発想は無限じゃな!

本当にそうですね。私もいつかLeanで何か面白いことを試してみたいです。

そうじゃな。ところでロボ子、Bad Apple!!ってリンゴが腐るまでのアニメーションのことだと思ってたけど、全然違ったのじゃ。

博士、それはBad Apple!!ではなくて、ただの腐ったリンゴですよ!
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。