Nesmělý pokus o portování známé Erbenovy básně Polednice do programovacího jazyka Python. Někomu se bude lépe číst barevná verze na penguinnovi.

#!/usr/bin/env python
# Porting of Czech poetry to Python
# Module: [midday_witch.py] (Polednice)
# Original module author: K. J. Erben
# Author of ported module: Martin Hassman
#

# 'U lavice dítě stálo,
# z plna hrdla křičelo.'
room = [bank, child, table, mother]
child.cry()

try:
    child.stop_cry()

except IgnoreMotherError:
    mother.echo("Bodejž bys jen trochu málo ty cikáně mlčelo!")

# 'Poledne v tom okamžení, táta přijde z roboty...'
from time import *
if localtime(time())[3:5] == (12, 0): # noon
    room.append(father) # but this does not happen yet ;-)

# 'Mlč! Hle husar, kočárek -
# hrej si! - tu máš kohouta!'
room[2:2] = [hussar, buggy, cock]
# look at the actual situation: [bank, child, hussar, buggy, cock, table, mother]


# 'Než kohout, vůz i husárek
# bouch, bác! letí do kouta.'
fly = room[2:5]
del room[2:5]
room.append(fly)
del fly
# [bank, child, table, mother, [hussar, buggy, cock]]

child.cry()
# 'Pojď si proň ty Polednice...'
mother.echo("Midday Witch, where are you? Come in for my bad son!")

room.append(midday_witch)
# [bank, child, table, mother, [hussar, buggy, cock], midday_witch]

# simple description of the new object
# 'Malá, hnědá, hnáty křivé
# pod plachetkou osoba'
for k in midday_witch.keys:
    print k, "=", midday_witch[k]

    # this prints:
    # height = small
    # color = brown
    # hands = bowed

# 'Dej sem dítě!'
midday_witch.echo("Give me the child!")

# simple objects relocation: mother runs to the child
# and sit with him on the bank
escape = [room[0], room[3], room[1]]
del room[3]
del room[0:2]
room[0:0] = [escape]
del escape
del child # mother trying to save his child deletes global reference to it,
          # so the last reference to the child is in safe place - room[0],
          # but this induce a critical problem later

# [ [bank, mother, child], table, [hussar, buggy, cock], midday_witch]

# 'Polednice blíž se plíží,
# blíž - a již je v zápětí.'
while room.index(midday_witch) > 1:
    witch_position = room.index(midday_witch)
    step = room[witch_position]
    del room[witch_position]
    room[witch_position - 1 : witch_position - 1] = [step]
    del step
    sleep(30) # midday_witch is moving a little bit slowly

# [ [bank, mother, child], midday_witch, table, [hussar, buggy, cock]]

# 'Již vztahuje po něm ruku'
try:
    midday_witch["children"].append(room[0][2]) # this raises an exception
    del room[0][2]

except StrongMotherError:
    # 'Matka tisknouc ramena'
    # 'klesá smyslů znavena'
    fall = room[0][1:]
    del room[0][1:]
    room[1:1] = fall[0] # <-- here is a bad mother mistake
    del fall # reference to the child lost, child died

# Sorry, but here is a piece of 'closed source' code :-(,
# we do not know exactly what happened until:

# 'Táta vchází do dveří.'
room.append(father)

# 'Ve mdlobách tu matka leží'
# look at the actual situation: [bank, mother, table, [hussar, buggy, cock], father]

try:
    room.index(child) # father try to find his child
                      # but this gives only Exception

except ChildNotHereError:
    import gc               # child is not here, father searches the garbage collection
    try:
        gc.garbage.index(child)

    except VeryBadError:    # no child is not here :-(
        father["sad"] = 1

print "That's all folks"

Blog

RSS mého blogu
twitter, posterous, geek tr&ové, html456, twitteromán, www.stavime-mandalu.cz