This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2016-10-27
Channels
- # aleph (2)
- # beginners (19)
- # boot (15)
- # cider (1)
- # cljsrn (1)
- # clojure (68)
- # clojure-austin (12)
- # clojure-dev (2)
- # clojure-france (6)
- # clojure-italy (46)
- # clojure-russia (45)
- # clojure-spec (55)
- # clojure-uk (41)
- # clojurescript (117)
- # component (15)
- # cursive (54)
- # datomic (24)
- # events (2)
- # funcool (1)
- # instaparse (4)
- # klipse (30)
- # lein-figwheel (3)
- # leiningen (4)
- # luminus (4)
- # om (10)
- # onyx (13)
- # parinfer (36)
- # proton (1)
- # reagent (1)
- # ring (2)
- # ring-swagger (1)
- # rum (19)
- # test-check (6)
- # testing (9)
- # untangled (1)
А это нормально что lein test
рабоает как надо и компилирует clojurescript, в то время как lein trampoline test
валится с Could not locate cljsbuild/compiler__init.class or cljsbuild/compiler.clj on classpath
? Как вы тесты запускаете на CI?
Раньше не встречал таких проблем.
> Лучше бы спросил "есть ли смысл писать кучу рельсовых приложений вместо кложаскрипта?" ) будет clojurescript 🙂
trampoline вроде же аутдейтед нет? я собираю через lein cljsbuild once [target]
тестирую через https://github.com/bensu/doo lein doo [chrome, firefox, ie, safari, opera, slimer, phantom, node, rhino, or nashorn] [target] once
оу, не знал
@artemyarulin а что для React ипользуешь?
в смысла враппер какой? Дак конечно свой пишу 😄
ранее ом-некст, но чота неосилил, rum очень няшный, простой как тапок. Такой простой что вот решил что тоже так могу 🙂
меня в rum подкупило что сорсов там на 500 строк и мега супер фича - серверного рендеринга
Кста, вот как понимаю это вполне такая оптимизация же не? Во втором случае не создается доп коллекция
(->> (range 10000) (map inc) (map dec))
vs
(->> (range 10000) (map (comp dec inc)))
ну т.е. это вопрос был вообще 🙂 Попробовал с time
замерить одна фигня
> не создается доп коллекция Какая коллекция? map возвращает же lazy seq, т.о. примерно одна фигня и будет, может быть на один-два вызова функций больше в стеке, чем в варианте с comp, но это детали имплементации, которые могут измениться.
ну первый меп создаст первую коллекцию, второй создаст вторую. Ну да, миллисекунды, а если в процентах то 20% прирост по времени! 🙂
всем спасибо)
справедливости ради, во втором варианте еще одна функция каждый раз создается)
comp создаст функцию конечно только один раз, не зависимо от кол-во элементов
внутри функции, созданной comp, тоже коллекция (список функций), если функций больше 2-х (но это детали реализации), по которой каждый раз проходиться надо...
но кста это не трансдюсер. Я уже так давно их не трогал что забыл чо там как
;; просто threading macro
(->> (range 10) (map (comp dec inc)))
;; трансдюсер уже
(into [] (map (comp dec inc)) (range 10))
и чем отличается? (->> (range 10) (map (comp dec inc)) (into []))
неа, у map|filter и других есть 2 разных арити Если 2 параметра то выполняется функция, если только один параметр то возвращается трансдюсер. Если развернуть threading macro то получается (into [] (map (range 10) (comp dec inc)))
@artemyarulin почему не трансдюсер? The following functions produce a transducer when the input collection is omitted: map cat mapcat filter http://clojure.org/reference/transducers
дак (->> в начале)
@artemyarulin ну да, ты прав)
Чтоб совсем все запутать ((partial map collection) inc) != ((map collection) inc))
🙂
второе даже не валидно кста, там функцию надо на первое место) ну не суть
а кто кста тут трансдюсеры использует? Я по началу пихал их везде, с кор.асинк они хорошо интегрируются, а счас уже и не помню когда юзал последний раз
ну блин сначала просто пишешь так, а потом когда нужно оптимизировать узкие места в другом оказываются))
а кто нибудь придумает кейс когда трансдьюсеры не подойдут?
когда лень писать и юзать лишние сущности и лишние миллисекунды не важны 🙂
а, ну такой кейс у меня постоянно😂 думал что нибудь более другое
я не уверен конечно, но мне кажется трансдюсеры копейки будут экономить, хотя хз я мало их юзал, поэтому и спросил тут - мож кто их юзает серьездно