Weekly links. Выпуск 8

В этом выпуске: Tail Call и Tail Call Optimization в Clojure и Python; Новые ресурсы по Clojure; Python .pyc files basics; генератор оправданий для программистов :)

Что такое Tail Call и Tail Call Optimization. И как с этим обстоят дела в Clojure и Python

Как же это легко и заманчиво, прочитать “Because recur does not consume stack space (thereby avoiding stack overflow errors), recur is critical when implementing certain recursive algorithms.” и сказать, что все понятно и очевидно (это из книги Clojure Programming). Или, что дальше разберусь.

Но нет, надо поймать себя на этом моменте и понять, что на самом деле не так уж понятно и очевидно. И что надо бы разобраться с этим прямо сейчас.

Для начала, терминология:

Clojure recur, tail call, tail call optimization:

Clojure TCO:

Python:

В итоге, через 3-4 часа понимаешь, что вроде и стало понятней, но по дороге родились еще 20 вопросов :)

Clojure

Python .pyc files

General

Slack

Fun