def mantPN_val(mant, x):
    """
    Evaluate (Horner's scheme) a MantPN `mant` at specific value `x` - scalar 
    or other objects (like PN). Type of x is most important.

    Examples
    --------
    >>> mantPN_val([3.0,0,1,2.1], 5.0)  # 3 * 5**0 + 0 * 5**(-1) + 1 * 5**(-2) + 2 * 5**(-3)
    3.0568
    >>> mantPN_val([3,0,1,2], 5)
    3.056
    >>> from fractions import Fraction
    >>> mantPN_val([3,0,1], Fraction(1,3))
    Fraction(12, 1)
    """
    ### >>> p(PolyNum([5.]))  # 3. * 5.**0 + 0 * 5.**(-1)1 + 1 * 5.**(-2) + 2 * 5.**(-3)
    ### PolyNum('(~3.056~)')    # # not important case, consuming long time
    x_1 = 1/x
    y = mant[-1]
    # mantR = mant[::-1]  #transcrypt doesn`t like `[::-1]`
    mantR = list(reversed(mant))
    for p1 in mantR[1:]:
        y = y * x_1 + p1
    return y