Есть ли программа для добавления скобок Clojure? - PullRequest
3 голосов
/ 31 марта 2012

Когда я изучаю Clojure для некоторых языков, читаемость и удобство синтаксиса являются наиболее важной проблемой (может быть, это неправильно ..).
Итак, Clojure очень привлекателен, но может быть много скобокподдерживать.
И я рассматриваю, есть ли сценарий, с помощью которого я могу написать код без скобок и затем скомпилировать его в Clojure, это должно быть лучше.Существует ли такая программа до сих пор?
(Однажды сказали, что есть синтаксис отступа для Схема , это хорошо. Как насчет Clojure?)

Ответы [ 2 ]

8 голосов
/ 31 марта 2012

Обычно вы используете редактор или IDE, которые позаботятся о скобках для вас.

Особенно полезно иметь «радужные скобки», то есть круглые скобки имеют разные цвета в соответствии с их уровнем вложенности, поэтомуВы можете быстро увидеть, как они выстраиваются.

Некоторые опции:

  • Плагин против часовой стрелки для Eclipse - отлично, если вы уже являетесь пользователем Eclipse, если хотите смешать Clojure и Javacode.
  • Emacs - распространенный выбор для программистов на Лисп.Существует довольно хороший набор инструментов Clojure для Emacs

Обратите внимание, что в целом из-за своей краткости код Clojure использует меньше скобок, чем эквивалентный код Java .

3 голосов
/ 31 марта 2012

Как только вы привыкните к паренам, их станет легче читать, чем код Java.Что более важно для читабельности, так это правильные отступы.Любая достойная IDE исправит отступ блока кода для вас.

Однако вы можете обнаружить, что макросы делают то, что вы хотите.Например, макрос потока (->) или макрос ...И вы можете написать свои собственные макросы для более конкретных целей.

Вот пример:

user => (str (inc (Integer / parseInt "10"))) "11"

можно переписать как user => (-> "10" Integer / parseInt inc str) "11"

Экономия двух пар-пар!Woot!

Возвращаясь к исходному вопросу: если вы можете написать не двусмысленный код с меньшим количеством паренов для данной ситуации, то должна быть возможность написать макрос, чтобы расширить синтаксис «без паренов» в реальный Clojure.У вас есть пример того, что вы ищете?

...