はじめに Go Advent Calendar 2016にて、「簡単な式の評価機を作ってみる」という記事を書きました。 そこでは、抽象構文木(AST)を解析し、go/constantパッケージの機能を使って式の評価器を作るという話を書きました。 この記事では、go/typesパッケージの機能を使うことで、もっと楽して式の評価を行うプログラムを作ってみたいと思います。 なお、この記事を書いた時点におけるGoの最新バージョンは1.7.4です。 定数の評価 「Goのスコープについて考えてみよう」という記事でも触れましたが、go/typesパッケージには、以下のような機能が提供されています。 識別子の解決(identifier resolution) 型推論(type deduction) 定数の評価(constant evaluation) 「go/types: The Go Type Chec