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

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

4
Python-декораторы и макросы Lisp
При поиске декораторов Python кто-то утверждал, что они такие же мощные, как макросы Lisp (особенно Clojure). Глядя на примеры, приведенные в PEP 318, мне кажется, что это всего лишь причудливый способ использования простых старых функций высшего порядка в Лиспе: def attrs(**kwds): def decorate(f): for k in kwds: setattr(f, k, kwds[k]) …
18 python  lisp  clojure  macros 

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

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

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

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

2
Являются ли квадратные скобки и фигурные скобки в Clojure все еще S-выражениями?
Я пытаюсь изучить Lisp и смотрю на все Lisp и их различия. Я вижу, что в некоторых реализациях Scheme вы можете использовать квадратные скобки взаимозаменяемо с круглыми скобками для удобства чтения, поэтому, поскольку они обрабатываются одинаково, я предполагаю, что они по-прежнему являются просто S-выражениями, как и все остальное. Однако в …
12 lisp  clojure 

1
Какая практическая проблема возникает из-за отсутствия гигиенических макросов в Clojure?
Я слышал, что макросы Clojure легче писать, но они не так надежны, как гигиенические макросы Racket. Мой вопрос состоит из 2 частей: Чем gensymотличаются гигиенические макросы? Что предоставляют макросы Racket, чего нет у Clojure? (будь то безопасность, композитность или что-нибудь)

2
Подход к SICP в Clojure вместо схемы
Я учусь на третьем курсе бакалавриата по программе разработки программного обеспечения, и у меня возникла идея прочитать SICP советнику, чтобы получить более глубокое и фундаментальное понимание принципов, лежащих в основе всего этого программного обеспечения, которое мы разрабатываем. Он предложил не изучать Схему, чтобы завершить книгу (потому что это не так …
11 clojure  scheme  sicp 

3
Плетение байт-кода против макросов Lisp
Я читал о библиотеках, написанных людьми для таких языков, как Java и C #, в которых используется переплетение байт-кода для таких вещей, как перехват вызовов функций, вставка кода регистрации и т. Д. Я также читал в макросах Lisp / Clojure в попытаться лучше понять, как их использовать. Чем больше я …

2
Как новая разработка Java повлияет на ее совместимость с такими языками, как Scala и Clojure?
Насколько я понимаю, и Scala, и Clojure были разработаны как новые языки, которые зависит от JVM, и легко интегрируется с кодом Java в том смысле, что они позволяют использовать классы Java внутри кода Scala и Clojure. Начиная с Java 8 (и, возможно, даже более сильно с последующими версиями Java), будут …
11 java  scala  clojure 

3
Почему мы не можем написать вложенные сокращенные функции в Clojure?
Сегодня я попытался оценить выражение Clojure с помощью вложенных сокращенных функций, и оно мне не дало. Выражение было: (#(+ % (#(+ % (* % %)) %)) 5) ; sorry for the eye bleed Выход был: IllegalStateException Nested #()s are not allowed clojure.lang.LispReader$FnReader.invoke (LispReader.java:630) ...and a bunch of other garbage

3
Рекомендации по функциональному программированию Scala или Clojure
Я много занимался кодированием для самостоятельной работы, получил опыт работы с моделями параллельного программирования: актерами, программной транзакционной памятью, потоком данных. Когда я пытаюсь применить эти архитектуры в реальной жизни - в веб-приложении с высокой нагрузкой - ни одна модель не поддерживает долговечность и постоянство данных. Реальные задачи требуют сохранения данных …

1
Пример компоновки программной транзакционной памяти
Одно из главных преимуществ программной транзакционной памяти, которое всегда упоминается, - это возможность компоновки и модульность. Различные фрагменты могут быть объединены для получения более крупных компонентов. В программах, основанных на блокировке, это часто не так. Я ищу простой пример, иллюстрирующий это с помощью реального кода. Я бы предпочел пример в …
11 haskell  clojure  stm 

3
Если вы можете использовать def для переопределения переменных, как это считается неизменным?
Пытаясь выучить Clojure, вы не можете не говорить, как непрерывно рассказывает Clojure об неизменных данных. Но вы можете легко переопределить переменную, используя defправо? Я понимаю, что разработчики Clojure избегают этого, но вы можете избежать изменения переменных на любом языке. Может кто-нибудь объяснить мне, чем это отличается, потому что я думаю, …
10 clojure 

2
Куда мы помещаем код «спрашивая мир», когда отделяем вычисления от побочных эффектов?
В соответствии с принципом разделения команд и запросов , а также мышлением в данных и DDD с презентациями Clojure следует отделять побочные эффекты (изменяющие мир) от вычислений и решений, чтобы было легче понять и протестировать обе части. Это оставляет без ответа вопрос: где относительно границы мы должны поставить «спрашивать мир»? …

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.