Size: a a a

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

2020 February 01

AI

Andrey Ivanov in Clojure — русскоговорящее сообщество
Если мы именно про Кложу говорим, то тут как Ричи захотел, так и получилось (маскировка или нет). В моих реализациях лиспов в половине маскируется, в половине нет. Но особые формы это именно символы, которые ридером читаются в спец значения, а не списки их содержащие
источник

AK

Azamat Kalimoulline in Clojure — русскоговорящее сообщество
Не-не. Ридер то их как раз читает в списки.
источник

AK

Azamat Kalimoulline in Clojure — русскоговорящее сообщество
А потом при эвале этого списка он принимает решения.
источник

AK

Azamat Kalimoulline in Clojure — русскоговорящее сообщество
Оставить как значение списка или что-то с этим сделать.
источник

AK

Azamat Kalimoulline in Clojure — русскоговорящее сообщество
Точнее не при эвале списка, а при эвале прочитанной формы.
источник

AI

Andrey Ivanov in Clojure — русскоговорящее сообщество
В Кложе прочитанная форма не эвалится а компилируется. Но в плане того, какие упрощенные модели можно иметь в голове для непротиворечивого описания семантики Кложи, тот тут, как видно, каждый выбирает свои представления. Мои, например, основаны на написании нескольких интерпретируемых реализаций. И Кложа в своем поведении пока не противоречит моим семантическим моделям.
источник

AK

Azamat Kalimoulline in Clojure — русскоговорящее сообщество
Ну эвалится или комплириуется как эвалиться по сути для пользователя будет выглядеть очень похоже. Если не углубляться в детали.
источник

AK

Azamat Kalimoulline in Clojure — русскоговорящее сообщество
Семантически, во всяком случае, будет одно и то же.
источник

AI

Andrey Ivanov in Clojure — русскоговорящее сообщество
Отлично, вот и давайте ограничимся семантикой а не деталями реализации. И с семантической точки зрения я утверждаю, что спецформы - это символы, независимо от того на каком месте они стоят и в каких списках. Если интересно, могу пропруфить мою точку зрения в чатике с Лисп-ботом, где можно реплить формы.
источник

AK

Azamat Kalimoulline in Clojure — русскоговорящее сообщество
Ну давай, интересно будет посмотреть.
источник
2020 February 02

YK

Yurii Khmelevskii in Clojure — русскоговорящее сообщество
Приветствую! Если какой-то спомоб в выражении найти все символы (не фуннкции)?
У меня есть макрой, в который одим из аргументов заходит, например, следующее:
’(or test (and one two) 123 true (= 123 (inc variable)))


и мне нужно найти все символы
[test one two variable]


такое возможно надежно сделать?
источник

KC

Kirill Chernyshov in Clojure — русскоговорящее сообщество
Символ может быть и функцией
источник

YK

Yurii Khmelevskii in Clojure — русскоговорящее сообщество
в данном случае буду считать что у меня так быть не должно
источник

AI

Andrey Ivanov in Clojure — русскоговорящее сообщество
флаттен - мап трай.эвал - фильтр символ?
источник

YK

Yurii Khmelevskii in Clojure — русскоговорящее сообщество
я думал можно как-то красивше, например чеерез walk
источник

AI

Andrey Ivanov in Clojure — русскоговорящее сообщество
куда красивше флаттен- мап, волков каких-то подключать еще...
источник

YK

Yurii Khmelevskii in Clojure — русскоговорящее сообщество
(->>
'(or test (and one two) 123 true (= 123 (inc variable)))
flatten
(filter symbol?))
источник

YK

Yurii Khmelevskii in Clojure — русскоговорящее сообщество
так не работает так как послее флаттена функции тоже символ
источник

AI

Andrey Ivanov in Clojure — русскоговорящее сообщество
а так никто и не предлагал.
источник

YK

Yurii Khmelevskii in Clojure — русскоговорящее сообщество
тогда я не понял
источник