File: LP6E/Chapter18/mins.py
"Find minimum value among all passed arguments of comparable types"
def min1(*args):
res = args[0]
for arg in args[1:]:
if arg < res:
res = arg
return res
def min2(first, *rest):
for arg in rest:
if arg < first:
first = arg
return first
def min3(*args):
tmp = list(args)
tmp.sort()
return tmp[0]
def min4(*args):
return sorted(args)[0]
for func in (min1, min2, min3, min4): # Test all 4 functions
print(func.__name__ + '...')
print(func(3, 4.0, 1, 2)) # Mixed numerics
print(func('bb', 'aa')) # Strings: code points
print(func([2, 2], [1, 1], [3, 3])) # Lists: recursive
print(func(*'hack')) # Unpacked characters