бесит плохая композабилити honeysql - напишу свой - уже назрело
@nicola а вот эту либу видел? https://github.com/metabase/toucan
От авторов metabase, а они то на скл собаку съели
сликом ООПшно выглядит - я люблю данные - https://github.com/niquola/ql. Как доделаю покажу как топ левел интерфейсы на ней делать сравнимые с ORMами
а что именно бесит?
clj -m cljs.main
❤️
Слушайте, а нафига у редьюса есть возможность работать с функцией принимающей 1 и только 1 аргумент?
(reduce #(do (println %) %) -1 (range 5))
Типа вот пример. Редьюс положит инициализирующий элемент в аккумулятор и дальше цикл поочередных выкидываний элементов последовательности: [возьмёт следующий элемент последовательности, выкинет его, отправит аккумулятор в функцию, поместит результат в аккумулятор]
Дока редьюса говорит:
-------------------------
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.
Зачем позволено юзать функцию 1 аргумента?
Это, скорее всего, позволено в cljs только
Так же как
(map (fn [x y] 5) [1 2 3])
хм, действительно
Спасибо
((fn [x y] [x y]) 1 2 3)
Вот пример попроще
А зачем/почему cljs позволяет вызывать с неправильным кол-вом аргументов?
потому что js :troll:
Потому что проверять arity на каждый вызов дорого.
Понял, спасибо