Python Proje Yardım

sekans yerine arrow (&&&) kullanirsak “target c in guess” kontrolunun tekrarini onluyoruz:

def iterate(f, x0):
    yield x0
    yield from iterate(f, f(x0))

def takewhilePlusOne(pred, xs):
    for x in xs:
        yield x
        if not pred(x): break

def arrowAnd(f, g):
    return lambda x: (f(x), g(x))

ask = lambda prompt, target: list(takewhilePlusOne(lambda g: arrowAnd((lambda hs_ts: print(list(map(lambda hs_ts: hs_ts[1] if hs_ts[0] else '_', zip(*hs_ts))))), (lambda hs_ts: not all(hs_ts[0])))((list(map(lambda c: c in g, target)), target))[1], iterate(lambda ii: ii + [input(prompt)], [])))

print(list(ask("bir harf girin: ", "ali ata bak")))
2 Beğeni