Size: a a a

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

2021 March 07

DF

Damir Farazetdinov in Clojure — русскоговорящее сообщество
Кароче, таки-да:
источник

DL

Dmytro Lispyvnyi '(🌲... in Clojure — русскоговорящее сообщество
Kirill Chernyshov
empty? это (not (seq coll))
именно
источник

DF

Damir Farazetdinov in Clojure — русскоговорящее сообщество
вобщем, чтобы себе в ногу не выстрелить, надо голову на плечах иметь.
источник

KC

Kirill Chernyshov in Clojure — русскоговорящее сообщество
Доку надо читать, а там и голова подтянется)
источник

DF

Damir Farazetdinov in Clojure — русскоговорящее сообщество
аминь!
источник

DF

Damir Farazetdinov in Clojure — русскоговорящее сообщество
;; давайте подитожим

;; Returns true if x implements IPersistentCollection
(coll? [])                    ;; => true
(coll? (range 1))             ;; => true - (range ...) returns PersistentList or similar
(coll? 0)                     ;; => false
;; Achtung!
(coll? (to-array []))         ;; => false - (to-array coll) is Object[] but not instance of IPersistentCollection

;; If the collection is empty, returns nil.  (seq nil) returns nil.
;; ...works on Strings, native Java arrays and any objects that implement Iterable
(seq [])                      ;; => nil - falsy
(seq nil)                     ;; => nil - falsy
(seq (range 0))               ;; => nil - falsy
(seq (range 1))               ;; => (0) - truthy
;; Achtung!
(seq "ABC")                   ;; => (\A \B \C) - truthy
(seq 0)                       ;; throws IllegalArgumentException - java.lang.Long is not instance of ISeq

;; Return true if x implements ISeq
(seq? 0)                      ;; false
(seq? (range 0))              ;; true
(seq? [])                     ;; false
;; Achtung!
(seq? (seq []))               ;; false
(seq? (seq [nil]))            ;; true

;; Return true if the seq function is supported for x
(seqable? 0)                  ;; false
(seqable? (range 0))          ;; true
;; Achtung! empty colls are seqable
(seqable? [])                 ;; true
(seqable? #{})                ;; true
(seqable? {})                 ;; true
(seqable? "")                 ;; true

;; Returns true if coll implements Sequential
(sequential? [])              ;; true
(sequential? '())             ;; true
(sequential? (range 0))       ;; true
(sequential? 0)               ;; false
(sequential? nil)             ;; false
;; Achtung!
(sequential? #{})             ;; false - set is not Sequential
(sequential? {})              ;; false - map is not Sequential

(= '() [])                    ;; true
источник

VP

Vladimir Pavlyuk in Clojure — русскоговорящее сообщество
🤝
Последняя конструкция конечно интересная)
источник

VP

Vladimir Pavlyuk in Clojure — русскоговорящее сообщество
Damir Farazetdinov
;; давайте подитожим

;; Returns true if x implements IPersistentCollection
(coll? [])                    ;; => true
(coll? (range 1))             ;; => true - (range ...) returns PersistentList or similar
(coll? 0)                     ;; => false
;; Achtung!
(coll? (to-array []))         ;; => false - (to-array coll) is Object[] but not instance of IPersistentCollection

;; If the collection is empty, returns nil.  (seq nil) returns nil.
;; ...works on Strings, native Java arrays and any objects that implement Iterable
(seq [])                      ;; => nil - falsy
(seq nil)                     ;; => nil - falsy
(seq (range 0))               ;; => nil - falsy
(seq (range 1))               ;; => (0) - truthy
;; Achtung!
(seq "ABC")                   ;; => (\A \B \C) - truthy
(seq 0)                       ;; throws IllegalArgumentException - java.lang.Long is not instance of ISeq

;; Return true if x implements ISeq
(seq? 0)                      ;; false
(seq? (range 0))              ;; true
(seq? [])                     ;; false
;; Achtung!
(seq? (seq []))               ;; false
(seq? (seq [nil]))            ;; true

;; Return true if the seq function is supported for x
(seqable? 0)                  ;; false
(seqable? (range 0))          ;; true
;; Achtung! empty colls are seqable
(seqable? [])                 ;; true
(seqable? #{})                ;; true
(seqable? {})                 ;; true
(seqable? "")                 ;; true

;; Returns true if coll implements Sequential
(sequential? [])              ;; true
(sequential? '())             ;; true
(sequential? (range 0))       ;; true
(sequential? 0)               ;; false
(sequential? nil)             ;; false
;; Achtung!
(sequential? #{})             ;; false - set is not Sequential
(sequential? {})              ;; false - map is not Sequential

(= '() [])                    ;; true
Спасибо)
источник

AB

Alex Bubnov in Clojure — русскоговорящее сообщество
Dmitry Ponyatov
NoSQL БД на основе связанных объектов, in-memory в потенциале libpmem (nvram).
поскольку в такой форме элементарно представлять и программы, есть смысл сделать эти структуры данных исполняемыми
Что значит «на основе связанных объектов»?
источник

IR

Ingrid Raines in Clojure — русскоговорящее сообщество
Очень важный вопрос к сообществу: есть ли какой-то устоявшийся универсальный архитектурный паттерн для фронтэнд-приложений на cljs?
источник

A

Aleksey @cheatex in Clojure — русскоговорящее сообщество
Ingrid Raines
Очень важный вопрос к сообществу: есть ли какой-то устоявшийся универсальный архитектурный паттерн для фронтэнд-приложений на cljs?
re-frame?
источник

AC

Anton Chikin in Clojure — русскоговорящее сообщество
Ingrid Raines
Очень важный вопрос к сообществу: есть ли какой-то устоявшийся универсальный архитектурный паттерн для фронтэнд-приложений на cljs?
re-frame
источник

EZ

Evgeny Zajcev in Clojure — русскоговорящее сообщество
а re-frame можно исползовать чтобы react-native приложения собирать из cljs ?
источник

IR

Ingrid Raines in Clojure — русскоговорящее сообщество
Не фрэймворк, а паттерн
источник

С

Семиниони in Clojure — русскоговорящее сообщество
Ingrid Raines
Не фрэймворк, а паттерн
Фреймворк разве не некий архитектурный паттерн, закрепленный создателями фреймворка/коммьюнити?
источник

IR

Ingrid Raines in Clojure — русскоговорящее сообщество
Семиниони
Фреймворк разве не некий архитектурный паттерн, закрепленный создателями фреймворка/коммьюнити?
Вопрос именно про самостоятельный framework-agnostic стандарт
источник

IR

Ingrid Raines in Clojure — русскоговорящее сообщество
Но судя по всему такого нет
источник

С

Семиниони in Clojure — русскоговорящее сообщество
Ingrid Raines
Вопрос именно про самостоятельный framework-agnostic стандарт
Можно спросить в слаке
источник

VP

Vladimir Pavlyuk in Clojure — русскоговорящее сообщество
Ingrid Raines
Вопрос именно про самостоятельный framework-agnostic стандарт
По большому счету, фреймворки задают стандарты.  re-frame, например, поощряет писать event-based архитектуру и чистые евент хендлеры.
источник

VP

Vladimir Pavlyuk in Clojure — русскоговорящее сообщество
То есть у него свои приемы стейт-менеджмента
источник