This sort of “mini interpreter in an object/module” stuff is so cool. Really interested to see the next installment.
One thing I found myself curious about was the change from the
return lambda value: op(value, nodes)
in the original implementation of the build_evaluator method to the explicit declaration (and return) of the _op function in the updated code. These two methods achieve the same goal, correct?
They achieve the same goal, that might be just the change of form from lambda to a def that confuses you I imagine? Other than that, the idea is the same indeed.