私は今Opus 4.5に夢中です Gemini 3 と同じくらいスマートですが、コード スタイル、指示の追従性、CLI UX、そして最も重要なのは、ちょっとしたことをしたいときのスピードがはるかに優れています。 また、Claude Codeが失敗してぐるぐる回っていた時に、とても面白いやり取りがありました。そこで私は邪魔をして、説明を求めさせました。Claude Codeは素晴らしい質問をし、私はいくつかの概念を教え、ようやく理解しました。そして、タスクを完了し(簡単ではありませんでしたが!)、すべてのテストに合格しました。 やり取りは次のとおりです (Opus 自身による要約): (クロード・コードが割り込んだ) - 私: せっかく長い時間を過ごしているんだから、私に質問してみたらどうですか? 質問にはいつでも答えられますよ。やみくもに推測したり、適当なことを試したりする必要はありません。失敗に終わりますよ。 - AI: おっしゃる通りです。申し訳ありません。質問です。ラムダ式をSUP全体に分散させる場合、変数のリダイレクトはどのように機能するのでしょうか?元の変数を新しいラムダ式にリダイレクトするには、HEAP[lam_loc] を設定する必要がありますか? - 私: あなたの表記法の意味がよく分かりませんが... [dup-lam セマンティクスを説明]。Term* を受け取って各要素を 2 つの Term* に複製する clone_many() 関数が絶対に必要であることに注意してください。それはありますか? これで質問への回答になりましたか? - AI: ありがとうございます。かなり明確になりました!clone_manyについて質問なのですが、Cインジェクトでテンプレートを一度クローンし、残りの引数をそれぞれクローンしています。これで合っていますか? - 私: args0[16]って何? args0[0]って何? sup_aがなぜそこにあるのか? よく分からない - AI: おっしゃる通りです。Haskellをもう少し注意深く読み直してみます。つまり、aとb(SUPブランチ)はクローン化されず、新しい引数リストの最初の要素として直接使用されます。残りの引数のみがクローン化されます。私のCコードもこれと一致しています。問題は別のところにあるはずです。 - 私: ああ、なるほど。確かにクローンのロジックは正しそうに見えますが、それでも、このように手動でインライン化するのではなく、ヘルパーの clone_many 関数を使用することをお勧めします。 - AI: わかりました。まずは clone_many を追加しましょう。[追加するが、テストはまだ失敗する] 出力がまだ間違っています。質問: collapse は CO0/CO1 ノードを評価/解決するべきでしょうか?それとも CO0/CO1 のままにして、後で解決するべきでしょうか? - 私: Haskell では、CO0/CO1 はデフォルトのケースで崩壊します... [dup-sup の同じラベルの相互作用による完全なリダクション チェーンを説明します] - AI: とても参考になりました!同じラベルを持つdup-supの相互作用によって、CO0/CO1が正しく解決されているんですね。問題はテンプレート構造にあるはずです。テンプレート構造が間違っているのでしょうか? - 私: テンプレートを注入に渡すだけで、必要に応じて全体が複製されます。構築が間違っているように見えますが、2 つのラムダを割り当てていますか? なぜ 2 つの heap_alloc ですか? 外側のラムダに var を作成する必要がありますが、未使用の場所に var を作成しているように見えます。 - AI: おっしゃる通りです!VAR(fV_loc) は、別の fV_loc ではなく、外側のラムダの本体の位置 (outer_loc) を指す必要があります。これで合っていますか? - 私: まあまあいい感じだけど、もう一度確認してね。あなたは機械なんだから - AI: おっしゃる通り、注意深くトレースしてみましょう... [トレース、検証、コード修正] collapse_4 は合格です! [同じパターンで APP、DRY、MAT、CTR のケースを修正し続けます] 35 個のテストすべて合格です!
このループ: > AIにタスクを与える > 問題を探求する > それは疑問を生じさせる > 洞察力でそれを養う > 問題を探求する > ...などなど ソフトウェアを構築するための非常に強力で時間効率の良い方法です あなたはまだそれより賢い(そう願う)が、それ自体で多くのことを持ち上げることができる