(toiminnot)

hwechtla-tl: Nettipäiväkirja 16.07.2018

Kierre.png

Mikä on WikiWiki?
nettipäiväkirja
koko wiki (etsi)
viime muutokset


Löysin koneeltani jotain satunnaisia obfuskoidun Pythonin esimerkkejä :)

def suorita(mj, muisti):
    p = 0
    ip = 0
    while ip < len(mj):
        komento = mj[ip]
        ip = ip + 1
        if komento == '-': muisti[p] = muisti[p] - 1
        elif komento == '+': muisti[p] = muisti[p] + 1
        elif komento == '<': p = p - 1
        elif komento == '>': p = p + 1
        elif komento == '/' and muisti[p] > 0: ip = p = 0
    return muisti

def tuplaa(numero):
    muisti = [numero, 0, 0, 0]
    suorita('->++</', muisti)
    return muisti[1]

def summaa(n1, n2):
    muisti = [n1, 0, n2, 0]
    suorita('->>+<</', muisti)
    return muisti[2]

print(summaa(6, tuplaa(37)))

def stackmachine(prog, stack):
    for arity, fn in prog:
        stack = fn(*stack[:arity]) + stack[arity:]
        print(stack)
    return stack

dup = (1, lambda x: [x, x])
times = (2, lambda x, y: [x * y])

def cubic(n):
    return stackmachine([dup, dup, times, times], [n])[0]

def quadbic(n):
    return stackmachine([dup, times, dup, times], [n])[0]

print(cubic(3) + quadbic(3))


kommentoi (viimeksi muutettu 16.07.2018 10:53)