def eval_function(f, values):
    for x in values:
        try:
            result = f(x)
        except Exception:
            result = 'error'
            
        print(x, '->', result)


def square(x):
    return x ** 2


eval_function(square, [1, 2, 3, 4])

eval_function(lambda x: x ** 3, [1, 2, 3, 4])

eval_function(lambda x: 1 / x, [-3, -2, -1, 0, 1, 2, 3])

eval_function(lambda x: 10 ** 1000 / x, [-3, -2, -1, 0, 1, 2, 3])
