clojure-russia

Работа и релокейт: #jobs-rus | #clojure-russia-offtop Телеграм-чат https://t.me/clojure_ru
nicola 2018-03-26T12:22:11.000374Z

бесит плохая композабилити honeysql - напишу свой - уже назрело

👍 3
rustam.gilaztdinov 2018-03-27T07:54:52.000450Z

@nicola а вот эту либу видел? https://github.com/metabase/toucan

rustam.gilaztdinov 2018-03-27T07:55:19.000238Z

От авторов metabase, а они то на скл собаку съели

nicola 2018-03-27T16:17:34.000682Z

сликом ООПшно выглядит - я люблю данные - https://github.com/niquola/ql. Как доделаю покажу как топ левел интерфейсы на ней делать сравнимые с ORMами

kirill.salykin 2018-03-26T14:48:42.000088Z

а что именно бесит?

dottedmag 2018-03-26T15:51:44.000210Z

clj -m cljs.main ❤️

kgofhedgehogs 2018-03-26T17:21:01.000110Z

Слушайте, а нафига у редьюса есть возможность работать с функцией принимающей 1 и только 1 аргумент?

kgofhedgehogs 2018-03-26T17:21:29.000524Z

(reduce #(do (println %) %) -1 (range 5))

kgofhedgehogs 2018-03-26T17:25:53.000550Z

Типа вот пример. Редьюс положит инициализирующий элемент в аккумулятор и дальше цикл поочередных выкидываний элементов последовательности: [возьмёт следующий элемент последовательности, выкинет его, отправит аккумулятор в функцию, поместит результат в аккумулятор]

kgofhedgehogs 2018-03-26T17:27:17.000514Z

Дока редьюса говорит:

-------------------------
cljs.core/reduce
([f coll] [f val coll])
  f should be a function of 2 arguments. If val is not supplied, returns the result of applying f to the first 2 items in coll, then applying f to that result and the 3rd item, etc. If coll contains no items, f must accept no arguments as well, and reduce returns the result of calling f with no arguments.  If coll has only 1 item, it is returned and f is not called.  If val is supplied, returns the result of applying f to val and the first item in coll, then applying f to that result and the 2nd item, etc. If coll contains no items, returns val and f is not called.
> f should be a function of 2 arguments.

kgofhedgehogs 2018-03-26T17:27:55.000628Z

Зачем позволено юзать функцию 1 аргумента?

ilevd 2018-03-26T17:29:04.000295Z

Это, скорее всего, позволено в cljs только

ilevd 2018-03-26T17:31:46.000107Z

Так же как

(map (fn [x y] 5) [1 2 3])

kgofhedgehogs 2018-03-26T17:34:46.000083Z

хм, действительно

kgofhedgehogs 2018-03-26T17:34:51.000181Z

Спасибо

kgofhedgehogs 2018-03-26T17:35:36.000170Z

((fn [x y] [x y]) 1 2 3)

kgofhedgehogs 2018-03-26T17:35:44.000551Z

Вот пример попроще

kgofhedgehogs 2018-03-26T17:36:01.000508Z

А зачем/почему cljs позволяет вызывать с неправильным кол-вом аргументов?

2018-03-26T17:50:48.000850Z

потому что js :troll:

1
dottedmag 2018-03-26T19:08:04.000570Z

Потому что проверять arity на каждый вызов дорого.

kgofhedgehogs 2018-03-26T19:14:29.000472Z

Понял, спасибо