Я все еще пытаюсь понять явные преимущества clojure. Я понимаю, что это динамический, [почти] чисто функциональный язык, который хорошо подходит для модульного тестирования, concurrency и быстрого развития.
Я смотрел эту презентацию своим основателем Ричем Хики.
Вокруг отметки 25-й минуты вы можете увидеть множество замечательных способов, в которых clojure упрощает программирование благодаря возможности определять списки и векторы динамически:
( 123) [123]
способность использовать эти динамически определенные векторы как функции
([ 123] 0)
возможность вызова функций по вновь определенным строкам
(.ToUpperCase "foo")
как выразился Rich, "синтаксис для литералов - это синтаксис для языка".. красивый.
но не возможно ли сделать этот стиль программирования в .net 4.0? (хотя и более болтливый)
(new[] {1,2,3})[0]
"foo".ToUpper()
и т.д..net также может использоваться для программирования функциональным способом (хотя он не применяется)
это тривиальные примеры, но похоже, что это основа clojure. Каковы некоторые функции, которые устанавливают clojure больше друг от друга и делают его лучшим выбором в некоторых сценариях?