Unquoteの一部として、リフレクション ベースの Quotation エバリュエーターを実装しました(これはバージョン 2.0.0 の新機能です)。
> #r @"..\packages\Unquote.2.2.2\lib\net40\Unquote.dll"
--> Referenced '..\packages\Unquote.2.2.2\lib\net40\Unquote.dll'
> Swensen.Unquote.Operators.eval <@ sprintf "%A" (1,2) @>;;
val it : string = "(1, 2)"
PowerPack のエバリュエーターよりも最大 50 倍高速であることが測定されました。もちろん、これはシナリオによって異なります。しかし、Unquote は通常、式の解釈において PowerPack よりもはるかに高速です。
また、VarSet、PropertySet、FieldSet、WhileLoop、ForIntegerRangeLoop、Quote など、PowerPack のエバリュエーターよりも多くの式をサポートしています。実際、Unquote のエバリュエーターは、NewDelegate、AddressSet、および AddressOfを除くすべての引用式をサポートしています。これらはいずれもサポートする予定です。