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). Или, что дальше разберусь.
Но нет, надо поймать себя на этом моменте и понять, что на самом деле не так уж понятно и очевидно. И что надо бы разобраться с этим прямо сейчас.
Для начала, терминология:
- What Is Tail Call Optimization?
- What methods are there to avoid a stack overflow in a recursive algorithm?
Clojure recur, tail call, tail call optimization:
- Clojure - using recur vs plain recursive function call - и надо опять себя не обмануть и почитать и документацию и вопросы на которые стоят ссылки :)
- Why is tail recursion optimisation not implemented in languages like Python, Ruby, and Clojure? Is it just difficult or impossible?
Clojure TCO:
- Clojure Tail Call Optimizer (CTCO) - это на будущее попробовать разобраться
- TCO - Chris Frisz
Python:
- Does Python optimize tail recursion?
- Почему нет от автора языка:
- Tail Call Optimization for Python (модуль). Блог автора модуля
- Tail call recursion in Python - после этой статьи и Clojure Tail Call Optimizer на следующей неделе мне надо разобраться с thunk, trampoline, continuations
В итоге, через 3-4 часа понимаешь, что вроде и стало понятней, но по дороге родились еще 20 вопросов :)
Clojure
- The Ultimate Guide To Clojure REPLs
- Clojure Hangouts
- Материалы курсов по Clojure, бесплатно и онлайн - русскоязычный курс по Clojure
- Новая книга в список: Web Development with Clojure, Second Edition
Python .pyc files
- 6.1.3. “Compiled” Python files
- If Python is interpreted, what are .pyc files?
- Why are main runnable Python scripts not compiled to pyc files like modules?
General
Slack
- Slack Slash Commands as a Service
- slack-overflow - stackoverflow в Slack
Fun
- programmingexcuses.com - генератор оправданий :)