Chcete číst

Co je čitelnější?

aneb překvapivé pojítko mezi matematikou a LISPem

Na VŠ jsme nedávno v hodinách topologie probírali vnitřek množiny, vnějšek množiny a podobné věci. Snažil jsem se udělat si v tom v hlavě pořádek, protože definice vnitřku je:

"Vnitřek množiny X je sjednocení všech otevřených podmnožin množiny X."

Hodně mi to připomíná LISPovou syntaxi:

(defn vnitrek [x]
  (sjednoceni
    (filter otevrena?
      (podmnoziny x))))

Člověk to musí číst odprostřed (od "konce") - je to prefixová notace. Chápu, proč ji používají matematici ve svých slovních definicích - chtějí, aby to bylo čím jak nejkratší, aby tam nebylo nic zbytečného, atd. - ale mně by k pochopení víc pomohlo, kdyby to rozvedli třeba takhle:

"Vnitřek množiny X získáš tak, že ji vezmeš, najdeš všechny její podmnožiny, z nich vybereš všechny, co jsou otevřené, a uděláš nad nimi sjednocení."

Neboli:

(defn vnitrek [x]
  (->> x
       podmnoziny
       (filter otevrena?)
       sjednoceni))

Když to vidím rozepsané takhle, dovedu si lépe představit, co se s tím, co mám zrovna v ruce děje, jak se to mění. V bakalářce by to asi neobstálo, ale pro čtenáře to je přístupnější :)

Nutno dodat, že u programování je čitelnost a pochopitelnost programu podstatně důležitější. Možná proto se mi to ->> makro tak líbí? :)

Napište komentář