Ethiopian multiplication: Difference between revisions

(→‎{{header|Python}}: Use takewhile)
Line 2,388:
return result</lang>
 
UsingAn example showing Python's functional programming capabilities using lambdas, a generator, factorytakewhile, izip, a list comprehension, izip and a generator expression.
 
<lang python>from itertools import izip, takewhile
 
halve = lambda x: x // 2
Line 2,396:
even = lambda x: x % 2 == 0
 
def make_generatoriterate(predicatefunction, functionarg):
defwhile generator(x)1:
whileyield predicate(x):arg
arg = yield xfunction(arg)
x = function(x)
return generator
 
halver = make_generator(lambda x: xtakewhile(lambda v: v >= 1, iterate(halve, x))
doubler = make_generator(lambda x: Trueiterate(double, doublex)
 
def ethiopian(multiplier, multiplicand):
Anonymous user