Вопросы с тегом «clojure»

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

41
Что имел в виду Рич Хики, когда сказал: «Вся эта специфика [интерфейсов / классов / типов] убивает ваше повторное использование!»

В 29 -минутном выступлении Рич Хики, посвященном размышлениям на конференции Goto « Значение ценностей », он рассказывает о накладных расходах такого языка, как Java, и делает следующее заявление: «Все эти интерфейсы убивают ваше повторное использование». Что он имеет в виду? Это правда? В поисках...

40
Что такого замечательного в Clojure? [закрыто]

В последнее время я взглянул на Clojure и наткнулся на этот пост о Stackoverflow, в котором рассказывается о некоторых проектах, которые следуют лучшим рекомендациям, и в целом о хорошем коде Clojure. Я хотел разобраться с языком после прочтения некоторых основных уроков, поэтому я взглянул на...

38
Почему плохая связь между функциями и данными плоха?

Я нашел эту цитату в « Радости Clojure » на с. 32, но кто-то сказал мне то же самое за ужином на прошлой неделе, и я слышал это и в других местах: Недостатком объектно-ориентированного программирования является тесная связь между функцией и данными. Я понимаю, почему ненужное соединение плохо в...

37
C # Dev - я пробовал Лиспс, но не получаю [закрыто]

После нескольких месяцев изучения и игры с Lisp, как с CL, так и с немного Clojure, я все еще не вижу веской причины что-либо писать в нем вместо C #. Мне бы очень хотелось, чтобы были веские причины, или чтобы кто-то указывал, что мне не хватает чего-то действительно большого . Сильные стороны...

36
Каковы функциональные эквиваленты операторов обязательного разрыва и других проверок цикла?

Допустим, у меня есть логика ниже. Как написать это в функциональном программировании? public int doSomeCalc(int[] array) { int answer = 0; if(array!=null) { for(int e: array) { answer += e; if(answer == 10) break; if(answer == 150) answer += 100; } } return answer; } Примеры в большинстве блогов,...

36
Какие ограничения накладывает JVM на оптимизацию хвостового вызова

Clojure не выполняет оптимизацию хвостового вызова самостоятельно: если у вас есть хвостовая рекурсивная функция и вы хотите оптимизировать ее, вы должны использовать специальную форму recur. Точно так же, если у вас есть две взаимно рекурсивные функции, вы можете оптимизировать их только с помощью...

31
Проблемы (такие как обслуживание) в разработке с непопулярным языком

Я разрабатываю какое-то приложение с использованием clojure (lisp) в моей команде. Это начинается как небольшое приложение. Нет проблем. Но поскольку у него есть особенности и расширение области, это становится важной программой. Я беспокоюсь о техническом обслуживании или что-то. Никто в моей...

26
Почему сообщество Lisp предпочитает накапливать все скобки в конце функции?

Почему сообщество Lisp предпочитает накапливать все скобки в конце функции: (defn defer-expensive [cheap expensive] (if-let [good-enough (force cheap)] good-enough (force expensive))) Почему бы не использовать соглашение, такое как C или Java? Ладно, Лисп намного старше этих языков, но я говорю о...

26
На пути к Просвещению: Схема, Общий Лисп, Clojure? [закрыто]

Закрыто. Этот вопрос не по теме . В настоящее время не принимает ответы. Хотите улучшить этот вопрос? Обновите вопрос, чтобы он соответствовал теме разработки программного обеспечения в стеке. Закрыто 8 лет назад . Многие люди умнее меня продолжают писать, когда вы изучаете Lisp, это делает вас...

25
Реально ли доставить настольное приложение Clojure?

В настоящее время я поставляю настольное Java-приложение. Это простое старое приложение Java 5 Java / Swing, и до сих пор все работало хорошо. Java 5 была нацелена, потому что некоторые пользователи были на версии / компьютерах OS X, которые никогда не будут иметь Java 6 (мы можем скоро снять это...

24
Почему некоторым функциональным языкам нужна программная транзакционная память?

Функциональные языки по определению не должны поддерживать переменные состояния. Почему же тогда Haskell, Clojure и другие предоставляют реализации программной транзакционной памяти (STM)? Есть ли конфликт между двумя...

20
Лучшие практики в написании комментариев и документации

Комментировать сейчас проще, чем когда-либо. В Java есть несколько хороших методов для привязки комментариев к классам, и Java IDE хороши для создания оболочек комментариев для вас. Такие языки, как Clojure, даже позволяют вам добавить описание функции в сам код функции в качестве аргумента. Однако...

20
Есть ли у Clojure продолжения / сопрограммы / и т. Д.?

Я начал программировать на Python, и меня действительно смутили такие понятия, как сопрограммы и замыкания. Теперь я думаю, что знаю их на каком-то поверхностном уровне, но я никогда не чувствовал этот момент «просветления», поэтому я решил изучать Clojure. Я купил книгу Стюарта Хэллоуэя, и она...

19
«Используйте карту вместо класса для представления данных» - Рич Хикки

В этом видео Рич Хикки , создатель Clojure, он советует использовать карту для представления данных вместо использования класса для их представления, как это сделано в Java. Я не понимаю, как это может быть лучше, так как как пользователь API может узнать, что такое ключи ввода, если они просто...

18
Python-декораторы и макросы Lisp

При поиске декораторов Python кто-то утверждал, что они такие же мощные, как макросы Lisp (особенно Clojure). Глядя на примеры, приведенные в PEP 318, мне кажется, что это всего лишь причудливый способ использования простых старых функций высшего порядка в Лиспе: def attrs(**kwds): def decorate(f):...

13
Насколько независим Clojure от Java?

Я совершенно новичок в мире Clojure. Я ценю тот факт, что каждый имеет легкий доступ ко всем библиотекам Java с помощью функций взаимодействия Clojure, но мне было интересно, насколько Clojure стоит на своих ногах. Конечно, есть некоторые платформы, такие как Android, где совместимость с Java...

13
Как написать читаемый код Clojure?

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

12
Можем ли мы построить функциональный компьютер?

Как и FP, в конце концов, все наши программы структурированы. То есть не имеет значения, насколько чистыми или функциональными мы их создаем - они всегда переводятся в сборку, поэтому то, что на самом деле скрывается за капотами, это инструкции, состояния и циклы. Мы как бы подражаем ФП. Как...

12
Сопоставление с образцом в Clojure vs Scala

Каковы основные различия между сопоставлением с образцом в этих двух языках? Я не имею в виду синтаксис, но возможности, детали реализации, диапазон вариантов использования и необходимость. Приложения Scala (например, Lift and Play) гордо говорят о мастерстве соответствия шаблонов языков. Clojure,...