マクロを使用しているときに、特定の条件を保持する AST 内のノードを更新する必要があるポイントに到達しました (回避しようと懸命に努力してきました)。たとえば、各ノードを更新したいとします。
Literal(Constant(1))
値で:
Literal(Constant(2))
これらの AST ノードは式ツリーのどこにでもある可能性があるため、アドホック パターン マッチャーは使用できません。明らかに、私が最後にやりたいことは、すべてのコンパイラ プリミティブをカバーできる完全なパターン マッチャーをコーディングすることです。私はAPIを検索してきましたが、 collectやtraversableファミリーなどのメソッドは、ツリーを線形のものとして扱うため、私のニーズを満たすのに十分ではないという印象を受けました。結果として、更新されたツリー全体が必要です。 . では、不変の式ツリーをスマートな方法で更新することは可能でしょうか? 標準 API にそのような「更新」操作が存在しないのはなぜですか?