input: Write a python function to evaluate mathematical expressions with an oracle function.
  assert evaluate_with_oracle('3 5 +', lambda: 0) == 8.0
  assert evaluate_with_oracle('10 2 /', lambda: 0) == 5.0
  assert evaluate_with_oracle('4 5 *', lambda: 0) == 20.0
output: def evaluate_with_oracle(expression, oracle_fn):
      stack = []
      tokens = expression.split()
      
      for token in tokens:
          if token.lstrip('-').replace('.', '', 1).isdigit():
              stack.append(float(token))
          else:
              b = stack.pop()
              a = stack.pop()
              if token == '+':
                  stack.append(a + b)
              elif token == '-':
                  stack.append(a - b)
              elif token == '*':
                  stack.append(a * b)
              elif token == '/':
                  stack.append(a / b)
      
      return stack.pop()