Почему Clojure динамически типизируется?

Мне очень нравится читать о разных языках программирования. В настоящее время я изучаю Scala, но это не значит, что меня не интересуют Groovy, Clojure, Python и многие другие. Все эти языки имеют уникальный внешний вид и некоторые характерные особенности. В случае Clojure я не Я понимаю одно из этих дизайнерских решений. Насколько мне известно, Clojure уделяет большое внимание своей функциональной парадигме и в значительной степени заставляет вас использовать неизменяемые «переменные» везде, где это возможно. Итак, если половина ваших значений неизменяема, почему язык динамически типизирован?

На веб-сайте Clojure говорится:

Прежде всего, Clojure является динамическим. Это означает, что программа Clojure - это не просто то, что вы компилируете и запускаете, но то, с чем вы можете взаимодействовать.

Что ж, это звучит совершенно странно. Если программа скомпилирована, вы больше не можете ее изменить. Конечно, вы можете «взаимодействовать» с ним, это то, для чего используются пользовательские интерфейсы, но веб-сайт определенно не означает аккуратный «динамический» графический интерфейс.

Как Clojure выигрывает от динамической типизации

Я имею в виду частный случай Clojure, а не общие преимущества динамической типизации.

Как система динамических типов помогает улучшить функциональное программирование

Опять же, я знаю удовольствие не проливать "int a;" по всему исходному коду, но вывод типа может значительно облегчить боль. Поэтому я просто хотел бы знать, как динамическая типизация поддерживает концепции функционального языка.

50
задан Krzysztof Atłasik 17 July 2019 в 20:07
поделиться