This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2017-03-29
Channels
- # beginners (24)
- # boot (6)
- # cider (22)
- # cljsjs (1)
- # cljsrn (12)
- # clojars (3)
- # clojure (170)
- # clojure-china (2)
- # clojure-dusseldorf (18)
- # clojure-finland (1)
- # clojure-italy (32)
- # clojure-nl (1)
- # clojure-russia (65)
- # clojure-sanfrancisco (1)
- # clojure-spec (21)
- # clojure-uk (46)
- # clojurescript (92)
- # clojutre (1)
- # clr (7)
- # cursive (7)
- # datomic (6)
- # dirac (49)
- # emacs (17)
- # events (1)
- # funcool (20)
- # hoplon (6)
- # job (1)
- # jobs (1)
- # keechma (2)
- # leiningen (6)
- # lumo (74)
- # off-topic (15)
- # om (7)
- # onyx (40)
- # overtone (4)
- # pedestal (8)
- # powderkeg (4)
- # proton (2)
- # protorepl (2)
- # re-frame (18)
- # reagent (24)
- # ring-swagger (3)
- # rum (15)
- # slack-help (1)
- # spacemacs (20)
- # uncomplicate (62)
- # unrepl (29)
- # untangled (10)
- # yada (10)
@rkosenko нет, штатных нет. гет, ассок пишется в пару строк, если надо. но в целом ситации наверно разные бывают, не знаю вашу )
та хочется как проще - не хочется ни изобретать велосипед, ни добавлять новую зависимость. Ну в общем понял, спасибо, буду думать.
@rkosenko сериализовать как #my.ns/sorted-map
, а в read-string
подсунуть :reader {:my.ns/sorted-map clojure.core/array-map}
?
=> (edn/read-string {:readers {:my.ns/sorted-map clojure.core/array-map}} "#my.ns/sorted-map {1 2}")
java.lang.RuntimeException: No reader function for tag my.ns/sorted-map
Вроде ключем у ридеров должен символ, а не keyword, так что должно быть что-то типа такого, тобы оно array-map
попыталось вызвать:
=> (edn/read-string {:readers {'my.ns/sorted-map clojure.core/array-map}} "#my.ns/sorted-map {1 2}")
java.lang.IllegalArgumentException: No value supplied for key: {1 2}
Но array-map ожидает не один аргумент типа map. Потому надо делать как-то так:
=> (edn/read-string {:readers {'my.ns/sorted-map #(apply array-map (flatten (seq %)))}} "#my.ns/sorted-map {1 2}")
{1 2}
Но порядок, я так понимаю, может похерится ещё до вызова array-map. Можно, конечно, попробовать сериализировать как вектор, а потом в ридере конвертить в array-map. Наверно, это даже самый простой вариант:
=> (edn/read-string {:readers {'array-map #(apply array-map %)}} "#array-map [1 2 3 4]")
{1 2 3 4}
Вы понимает, что у вас такой аррай мап только на чтение работаеть будет как ожидается?
И даже если сейчас понимаете, то в какой-то прекрасный момент можете (не обязательно именно вы) об этом забыть и словить лулзов?
вот потому сделать совсем по-другому и обойтись без array-map и кастомных ридеров вообще... очень странно, что в clojure нет ничего стандартного для для такой типичной для мира lisp-ов вещи, как property list.
Нет идей как избавиться от or
в функции prime?
?
Т.е. Убрать проверку на равенство двойке
а почему сначала сравнивается с 2 а потом проверяется integer?
Иначе получается бесконечная рекурсия при обращении к primes
Двойка это начальное условие для создания primes сейчас
(defn prime? [x]
(or (= 2 x)
(and (integer? x)
(< 1 x)
(every? #(not (zero? (mod x %)))
(take-while #(< % (js/Math.sqrt x)) primes)))))
(def primes (filter prime? (range)))
сравнивать так с двойкой в целом - ок. Можно совсем извратиться, см: http://www.thesoftwaresimpleton.com/blog/2015/02/07/primes/
Не, это решето. Другой способ просто. Мне понятно, ччто с двойкой проблем нет. Просто хотелось попробовать от нее избавиться
А. Ну и еще вопрос. Как мне сослаться на еще не объявленную функцию?
(def primes (filter prime? (range)))
(defn prime? [x]
(or (= 2 x)
(and (integer? x)
(< 1 x)
(every? #(not (zero? (mod x %)))
(take-while #(> (math/sqrt x) %) primes)))))
primes
ссылается на prime?
, которая ссылается на primes
в при некоторых случаяхДа. Работает. Спасибо
В локал сторадж персистится?
@kronos_vano https://github.com/google/lovefield/blob/master/docs/spec/02_data_store.md#2-data-store
db.select().
from(infoCard).
from(infoCardDetails). // exception will be thrown here
orderBy(infoCard.lang, lf.Order.ASC).
orderBy(infoCard.itag) // ok, sort itag after sorting lang
> Only Safari 10 and later versions are supported. Интересно, что в 10 версии такого особенного появилось? И вообще если он pure JS, какая им разница на каком браузере гонять? Преподносят как будто кросс-браузерность это достижение
The deprecated WebSQL back store was created for legacy Safari. As of Safari 10, everything is fully supported. Please move away from WebSQL backstore since it will be removed from Lovefield in near future.
There is a LocalStorage-based store for Lovefield testing and will not be public unless sufficient interests arisen.
1. https://github.com/google/lovefield/blob/master/docs/dd/05_transaction.md#53-runner
tree-seq
выполняет обход дерева в глубину. А есть вариант обхода в ширину?
> When runner finished any task, it will check whether the finished task altered the scope of observed queries.
// The call below will trigger changes to the observed select. Internally
// Lovefield will run the query again if the scope overlaps, therefore please
// be aware of performance consequences of complex SELECT.
т.е. я так понимаю они примитивный анализ делают типа "если в запросе есть табличка в которую заинсертили"
> runner will check whether the bound values has changed from last seen (if any). If so, run the snapshot diff logic and trigger observer accordingly.
Вот если бы они какой-нить https://github.com/frankmcsherry/differential-dataflow из sql компилировали было бы круто