問題を理解するのに時間が掛かった。 with句は処理を連続させて、途中でエラーハンドリングが必要になったらelse節に投げてエラーハンドリングができる。 一連の流れの中で何度もエラーチェックをする必要が無く、エラーハンドリングをまとまった箇所に書けるメリットがある。
ASTを扱う処理はいつも訳分からなくなるけど、構造について少しずつ理解を深めていくとなんとなく分かってくる。 Macro.prewalk/3は、こういう問題で出てこなかったら使わない関数だったろうな。便利。
練習問題も残り2問。