import functools
import decimal
-from libraries.recipes import overloading
-from libraries.recipes import algorithms
+from util import overloading
+from util import algorithms
@overloading.overloaded
return self
def evaluate(self):
- raise KeyError
+ raise KeyError('Variable "%s" unable to evaluate to specific value' % self.name)
class Function(Operation):
def evaluate(self):
selfArgs = [arg.evaluate() for arg in self._args]
- return Value(self._op(*selfArgs))
+ return Value(self._op(*selfArgs), self.base)
def _simplify(self):
selfArgs = [arg.simplify() for arg in self._args]