Size: a a a

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

2021 March 21

AC

Anton Chikin in Clojure — русскоговорящее сообщество
Я получается должен запомнить что в некоторых контекстах (= (:a 1 :b 2) ({:a 1 :b 2})) => true
источник

AC

Anton Chikin in Clojure — русскоговорящее сообщество
А в некоторых - нет
источник

MB

Mike Bohdan in Clojure — русскоговорящее сообщество
(defn foo [& args]) – про переменную арити функи
(defn bar [& {:keys [debug] :or {debug false}}]) – про флаги
источник

AC

Anton Chikin in Clojure — русскоговорящее сообщество
Давай просто. Ты согласен что (= (:a 1 :b 2) ({:a 1 :b 2})) => true ?
источник

MB

Mike Bohdan in Clojure — русскоговорящее сообщество
Anton Chikin
Давай просто. Ты согласен что (= (:a 1 :b 2) ({:a 1 :b 2})) => true ?
Нет) Ну не знаю, мне это легче, из-за питона, там есть вызовы функи типа foo(1, b=2) и для меня это разные вещи, у меня в голове это не кастится в мапу
источник

MB

Mike Bohdan in Clojure — русскоговорящее сообщество
Это просто именованные аргументы
источник

AC

Anton Chikin in Clojure — русскоговорящее сообщество
Ну вот суть кложи имхо в том что там не делают исключений для 0.1% кейсов. Если что-то работает - оно работает не зависимо от контекста всега.
источник

AC

Anton Chikin in Clojure — русскоговорящее сообщество
В этом сила языка
источник

AC

Anton Chikin in Clojure — русскоговорящее сообщество
Mike Bohdan
Это просто именованные аргументы
Делайте явные именованные аргументы
источник

AC

Anton Chikin in Clojure — русскоговорящее сообщество
Пусть в языке будет фича "именованные аргументы"
источник

MB

Mike Bohdan in Clojure — русскоговорящее сообщество
Anton Chikin
Делайте явные именованные аргументы
В 99% мапку можно передать
источник

AC

Anton Chikin in Clojure — русскоговорящее сообщество
Mike Bohdan
В 99% мапку можно передать
Ну и зачем исключения?
источник

AC

Anton Chikin in Clojure — русскоговорящее сообщество
Кому кровь из носа надо передавать список?
источник

AC

Anton Chikin in Clojure — русскоговорящее сообщество
Anton Chikin
Пусть в языке будет фича "именованные аргументы"
В кложе нет именованных аргументов
источник

MB

Mike Bohdan in Clojure — русскоговорящее сообщество
Я в какой-то либе видел использование этой фичи, сейчас не вспомню и там оно делалось именно как флаг. Передавать флаги позиционно – неудобно, передавать через binding – не всегда подходит, да и это выглядит даже более дико, а тут сделали фичу, когда вообще можно передавать эти флаги не по одному, а мапой
источник

AC

Anton Chikin in Clojure — русскоговорящее сообщество
Можно так же на числовых литералах определить макрос, который будет смотреть что если после числа идет математический оператор - то надо поменять аргументы местами
источник

AC

Anton Chikin in Clojure — русскоговорящее сообщество
Т.е. (1 + 2) превращать в (+ 1 2) . А че, удобно же. Это оператор. В кложе нет операторов? Ну, теперь есть.
источник

AC

Anton Chikin in Clojure — русскоговорящее сообщество
Нет именованных аргументов? Ну, теперь есть.
источник

MB

Mike Bohdan in Clojure — русскоговорящее сообщество
Так они всегда были, в 1.10 так точно есть
источник

AC

Anton Chikin in Clojure — русскоговорящее сообщество
Нет изменяемых переменных? Ну, давайте заведем - в 1% случаев удобно же
источник