code: def if_(test, result, alternative):
      
      if test:
          if callable(result): return result()
          return result
      else:
          if callable(alternative): return alternative()
          return alternative
docs: Like C++ and Java's (test ? result : alternative), except
      both result and alternative are always evaluated. However, if
      either evaluates to a function, it is applied to the empty arglist,
      so you can delay execution by putting it in a lambda.
      >>> if_(2 + 2 == 4, 'ok', lambda: expensive_computation())
      'ok'