Size: a a a

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

2019 August 27

OR

Oleg Roshchupkin in Clojure — русскоговорящее сообщество
Evaluates exprs one at a time, from left to right. If a form
returns a logical true value, or returns that value and doesn't
evaluate any of the other expressions, otherwise it returns the
value of the last expression. (or) returns nil.
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
Mikhail Kuzmin
(or nil nil false [1 2 3])
а результат какой хочется?
источник

MK

Mikhail Kuzmin in Clojure — русскоговорящее сообщество
false
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
ну
(not (or nil nil false [1 2 3]))
=> false
источник

MK

Mikhail Kuzmin in Clojure — русскоговорящее сообщество
хватит троллить =)
источник

MG

Mikhail Gusarov in Clojure — русскоговорящее сообщество
так что, вернуть nil или false, в завиимости тот того, какое из них стоит перед первым истинным значением?
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
я не троллю
разве not or не даёт нужный результат?
источник

MK

Mikhail Kuzmin in Clojure — русскоговорящее сообщество
мне нужно первое не nil значение, а не первое истинное
источник

T

The2lb3oz4dr10½grOfHedgehogs in Clojure — русскоговорящее сообщество
Mikhail Kuzmin
мне нужно первое не nil значение, а не первое истинное
user=> (first (filter some? [nil false true]))
false
источник

MK

Mikhail Kuzmin in Clojure — русскоговорящее сообщество
я знаю, как это посчитать функцией
мне нужен макрос, чтобы аргументы не вычислялись раньше времени
я хочу узанть название, может быть уже есть что-то подобное
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
Mikhail Kuzmin
мне нужно первое не nil значение, а не первое истинное
то есть типа такого?
https://clojuredocs.org/clojure.core/some
источник

MK

Mikhail Kuzmin in Clojure — русскоговорящее сообщество
если сходу это не придумывается, я напишу свой макрос
источник

MK

Mikhail Kuzmin in Clojure — русскоговорящее сообщество
типа some?
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
Mikhail Kuzmin
типа some?
нет some с предикатом some?
по коллекции
если коллекция ленивая, то типа того
источник

OR

Oleg Roshchupkin in Clojure — русскоговорящее сообщество
user=> (some identity [nil nil 1 2 3])
1
источник

MK

Mikhail Kuzmin in Clojure — русскоговорящее сообщество
(defmacro x [& body]
 (let [[h & r] body]
   (if (seq r)
     `(if-some [v# ~h]
        v#
        (x ~@r))
     h)))

(x nil nil false true)
источник

OR

Oleg Roshchupkin in Clojure — русскоговорящее сообщество
Сразу по рукам
источник

OR

Oleg Roshchupkin in Clojure — русскоговорящее сообщество
И навечно поддерживать
источник

MK

Mikhail Kuzmin in Clojure — русскоговорящее сообщество
ну понятно, что тут можно что-то подправить
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
да, готового макроса в коре нет
источник