Я реализовал анализ цитат на основе отражения как часть Unquote (это новая функция с версии 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)"
Я измерил его в 50 раз быстрее, чем оценщик PowerPack. Это, конечно, будет зависеть от сценария. Но при интерпретации выражений Unquote обычно работает быстрее, чем PowerPack.
Он также поддерживает гораздо больше выражений, чем оценщик PowerPack, включая VarSet, PropertySet, FieldSet, WhileLoop, ForIntegerRangeLoop и Quote. Фактически, оценщик Unquote поддерживает все выражения кавычек , за исключением NewDelegate, AddressSet и AddressOf, которые я планирую в конечном итоге поддерживать.