The hardest problem in computer science...

Ethan Furman ethan at stoneleaf.us
Sat Jan 7 14:05:28 EST 2017


On 01/06/2017 11:34 PM, Steve D'Aprano wrote:
> On Sat, 7 Jan 2017 12:03 am, Steve D'Aprano wrote:
>
>> The second hardest problem in computer science is cache invalidation.
>>
>> The *hardest* problem is naming things.
>
> After puzzling over this for three days, it suddenly hit me:
>
> Theme = namedtuple("Theme", "vline tee corner")
>
> DEFAULT = Theme("│  ", "├─ ", "└─ ")
> BOLD = Theme("┃  ", "┣━ ", "┗━ ")
> ASCII = Theme("|  ", "|- ", "+- ")
>
> def draw_tree(tree, theme=DEFAULT):
>      ...

Ya know, that looks an /awful/ lot like a collection!  Maybe even an Enum?  ;)

-- 8< -------------------------------------------------------
from aenum import Enum   # note the 'a' before the 'enum'  :)

class Theme(Enum, init='v vr llc'):
     DEFAULT = "│  ", "├─ ", "└─ "
     BOLD = "┃  ", "┣━ ", "┗━ "
     ASCII = "|  ", "|- ", "+- "

def draw_tree(tree, theme=Theme.DEFAULT):
     print(theme.v)
     print(theme.vr)
     print(theme.v)
     print(theme.llc)

draw_tree(None)
-- 8< -------------------------------------------------------

--
~Ethan~


More information about the Python-list mailing list