Я думаю, что ответ Микеры превосходен.
Я хотел бы добавить только то, что в метапрограммировании clojure, имеющем тенденцию фокусироваться на макросах, грандиозном унифицированном решении метапрограммирования без одноранговой сети, в tcl есть несколько небольших острых инструментов, доступных для метапрограммирования, среди которых есть «неизвестная» команда, которая может бытьРаньше делали всякие хитрые трюки.Также интересно то, что хотя у clojure есть только небольшое количество ключевых слов или «специальных форм», tcl фактически не имеет ни одного, что делает tcl его собственным dsl, и изменение (или расширение) поведения любой команды возможно.
Одна вещь, с которой я должен не согласиться с ответом Микеры, - это то, что синтаксис clojure более поддается метапрограммированию.Один из неприятных сюрпризов для меня, когда я подхожу к clojure, заключается в том, насколько синтаксические вариации существуют в clojure, с различными вариантами использования () [] {} "" ^ {} # ': key ... и так далее, и так далее.Я полностью оправдываю этот тип синтаксического сахара, но на самом деле я нахожу синтаксис tcl более легким в использовании для «запутанного» метапрограммирования и генерации кода.А природа tcl «все является строкой» добавляет простоты.
Что касается возможностей многопользовательской обработки, неизменяемых структур данных, чисто функциональной природы и многих других примеров отличительных особенностей clojure, в tcl действительно нет ничего сопоставимого.
Я не мог согласиться с выводом Микеры.