Есть два вида людей и торговли: те, кто обрабатывает информацию с помощью встроенной в стек машины в своем мозгу, и те, кто потребляет ее большими кусками или блоками. Эти группы взаимно несовместимы друг с другом; они читают разные книги, имеют разные стили написания и, самое главное, пишут код на разных языках программирования. Я принадлежу ко второй группе; тем не менее, я знаю многих коллег-программистов из первой группы.
Для людей из первой группы нет ничего плохого во вложенных предложениях и подпунктах; они понимают рекурсию естественно; они смотрят на код медленно, оператор за оператором, строка за строкой, и машина стека в их мозгах продолжает подсчитывать скобки и скобки на подсознательном уровне. Синтаксис Lisp для них вполне естественный. Черт, они, вероятно, изобрели стековые машины и язык Forth. Но покажите им, скажем, Python (о нет!), И они беспомощно заглянут в листы кода, не понимая, почему эти глупые блоки кода оставлены открытыми , без соответствующих закрывающих операторов.
Для нас, бедных парней из второй группы, нет другого выбора, кроме как сгруппировать операторы кода в блоки и сделать для них визуальный отступ. Мы смотрим на экран, заполненный кодом, сначала замечая крупномасштабную структуру, затем отдельные функции или методы, затем группы операторов внутри этих методов, затем строки и операторы сверху вниз. Мы не можем мыслить линейно; нам нужны визуальные границы и чистая политика отступов. Следовательно, мы не можем смириться с работой с Лиспом; для нас это нерегулярный беспорядок ключевых слов и глупых скобок.
Большинство языков программирования совместимы с обоими способами мышления (эти «блоки» существуют для разума). Заметными исключениями являются Lisp и Forth, которые являются только первой группой, и Python, который является только второй группой. Я не думаю, что вам нужно адаптировать Lisp к вашему образу мышления, если вы принадлежите ко второй группе. Если вам все еще нужен функциональный язык, попробуйте Haskell. Это функциональный язык, предназначенный для людей, которые думают в виде блоков, а не стеков.