Я несколько раз обнаружил, что у меня есть группа взаимосвязанных функций, и то, как я, естественно, поместил их в файл, в конечном итоге противоречит их зависимостям (т.е. функция 1 зависит от функции 2, но выше функции 1). Когда я пишу код, я обычно продолжаю оценивать выражения верхнего уровня и оцениваю только весь файл, чтобы обновлять зависимости от ссылок или еще чего-то. Я нахожу это довольно часто, я в конечном итоге столкнулся с конфликтом зависимости, и в конечном итоге придется жонглировать рядом функций.
На других языках, которые я знаю, как только вы объявляете функцию, она становится "поднятой" за кулисами, как будто она появилась раньше всего. Таким образом, вам не нужно беспокоиться о порядке вещей в вашем коде и может рассматривать функции как модульные биты кода. Отсутствие этой функции продолжает укусить меня в clojure. Я делаю что-то неправильно? Его более незначительное раздражение, чем огромная сделка, это то, что вы просто привыкли уделять внимание?