Size: a a a

Clojure — русскоговорящее сообщество

2019 October 22

e

elendili in Clojure — русскоговорящее сообщество
А в скале, что число делает?
источник

DF

Damir Farazetdinov in Clojure — русскоговорящее сообщество
Mike Ananev
в этом случае будет нарушение всей философии кложуры. кложа язык обработки информации (данных). данные это immutable values. число 42 отображает идею числа 42. у него не может бытб ничего подразумеваемого еще кроме 42. это не объект. если для числа сделать IFn  то мы получим скалу
Однако :keyword всё-таки имеет IFn

Нет желания философию портить, есть жажда открыть неизведанное.
источник

MA

Mike Ananev in Clojure — русскоговорящее сообщество
elendili
А в скале, что число делает?
я имел ввиду смешение концепций. это как в суп налить кисель. потом горчицу и сверху пивом. примерно так скала тащит всякие концепции которые блестят в других языках
источник

DF

Damir Farazetdinov in Clojure — русскоговорящее сообщество
Всё-таки мне кажется можно для числа реализовать IFn только ради того, чтобы можно было арифметику записывать в инфиксной нотации.
Ну как это портит какую бы то ни было философию? Только читаемость кода повышает.
источник

DF

Damir Farazetdinov in Clojure — русскоговорящее сообщество
И над ботом в этом чате перестали бы все смеяться.
источник

KR

Kostyantin Randomname in Clojure — русскоговорящее сообщество
Одна из фишек вроде была однозначность и маленький размер языка
источник

AG

Alexey Golda in Clojure — русскоговорящее сообщество
Рискну предположить что это можно заэкстендить, но зачем лиспу инфиксная нотация? Только ради чисел? Так и начинаются потом разброд и шатания - тут инфиксная нотация, а тут польская, с числами такая, а с кейвордами другая, и пошло поехало...
источник

KR

Kostyantin Randomname in Clojure — русскоговорящее сообщество
Не хотеть
источник

DF

Damir Farazetdinov in Clojure — русскоговорящее сообщество
А для строки: семантика функи format. Неплохой вариант.
(map “IMG_%03d.jpg” (range n))
источник

DF

Damir Farazetdinov in Clojure — русскоговорящее сообщество
Alexey Golda
Рискну предположить что это можно заэкстендить, но зачем лиспу инфиксная нотация? Только ради чисел? Так и начинаются потом разброд и шатания - тут инфиксная нотация, а тут польская, с числами такая, а с кейвордами другая, и пошло поехало...
Ну пока нет разброда и шатания от того, что
можно и так: (:kw m)
и так (m :kw)
источник

e

elendili in Clojure — русскоговорящее сообщество
Damir Farazetdinov
Ну пока нет разброда и шатания от того, что
можно и так: (:kw m)
и так (m :kw)
Потому что кейворд по смыслу связан с мапой, это не абстрактный скаляр
источник

MA

Mike Ananev in Clojure — русскоговорящее сообщество
Damir Farazetdinov
Однако :keyword всё-таки имеет IFn

Нет желания философию портить, есть жажда открыть неизведанное.
тут я не уверен в своем ответе. но рискну предположить символы в clojure имеют специальное значение. keyword это развновидность symbol, которая умеет себя посмотреть в мапе и евалится по значению сама в себя. В общем в clojure, symbol это специальная конструкция, которая означает просто имя и оно не имеет значения. обычный symbol ссылается на что-то еще, что уже имеет значение, keyword сам в себя разрешается.
источник

MA

Mike Ananev in Clojure — русскоговорящее сообщество
а данные они как раз имеют значение.
источник

DF

Damir Farazetdinov in Clojure — русскоговорящее сообщество
Ага. Подумаю.
источник

DF

Damir Farazetdinov in Clojure — русскоговорящее сообщество
Да. Выходит, что keyword - сам по себе настоящий символ, а вот symbol - это скорее ссылка (символическая).
источник

DF

Damir Farazetdinov in Clojure — русскоговорящее сообщество
Но опять же: keyword имеет прерогативу быть функой, принимать параметры (аж два), евалиться, чё-то там вычислять, преобразование данных осуществлять. А, сцуко, строка, число не имеют такой прерогативы! Несправедливо!
источник

T

The2lb3oz4dr10½grOfHedgehogs in Clojure — русскоговорящее сообщество
Раз уж такое дело, обсуждаем кложуру. Меня сильно беспокоит вот что:
Можно получать значения из вложенных мап n разными способами
(get-in m [:key 0])
(-> m :key first)
(->> m :key first)
А если в мапе вдруг не вектор, а лист (после того как кто-то мапнул или профильтровал), то get-in с индексом уже не работает и остаются вторые два
Ещё к этому добавляется получение не вложенное получение:
(:key m)
(m :key)
(get m :key)

И в проекте у меня часто встречается венигрет из
(get-in m [:key 0])
(-> m :key first)
(:key m)
Читать это не очень приятно
Вы с такой проблемой не сталкивались? Как можно единый стиль сохранять?
источник

T

The2lb3oz4dr10½grOfHedgehogs in Clojure — русскоговорящее сообщество
А ещё иногда встречаю
(map (comp first :key) ms)
Разнообразие ппц
источник

AG

Alexey Golda in Clojure — русскоговорящее сообщество
Рискну предположить что числа и строки растущие из джавы объявлеы как final и поэтому нельзя имплементировать интерфейс, который добавляет метод invoke для вызова обьекта как функции
источник

AG

Alexey Golda in Clojure — русскоговорящее сообщество
Примитивы
источник