Ethiopian multiplication: Difference between revisions

m
(→‎{{header|Python}}: Use takewhile)
Line 2,401:
arg = function(arg)
 
halverhalves = lambda x: takewhile(lambda v: v >= 1, iterate(halve, x))
doublerdoubles = lambda x: iterate(double, x)
 
def ethiopian(multiplier, multiplicand):
table = [(p, q) for p, q in
izip(halverhalves(multiplier), doublerdoubles(multiplicand))]
result = sum(q for p, q in table if not even(p))
return result</lang>
Anonymous user