Size: a a a

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

2021 January 28

DF

Damir Farazetdinov in Clojure — русскоговорящее сообщество
пробовал поиграться с every-pred и some-fn.
вопросов стало на один больше:
функи выглядят комплементарными, но используется разное соглашение об именовании. -pred и -fn
это просто неустранённая проблема именования или так задумано специально?
источник

DF

Damir Farazetdinov in Clojure — русскоговорящее сообщество
кароче остановился на таком:
(some->
 cfg-file-path
 jio/file
 readable-or-nil
 slurp
 edn/read-string)
Одной из второстепенных целей было: минимум дополнительных сущностей и визуального шума
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
Damir Farazetdinov
пробовал поиграться с every-pred и some-fn.
вопросов стало на один больше:
функи выглядят комплементарными, но используется разное соглашение об именовании. -pred и -fn
это просто неустранённая проблема именования или так задумано специально?
(map (every-pred identity) [1 2 nil true false 3])
=> (true true false true false true)
(map (some-fn identity) [1 2 nil true false 3])
=> (1 2 nil true false 3)
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
что касается readable-or-nil
у меня есть такая функция общего назначения (вот которую полезно было бы иметь в core)

(defn test-pred
 "Return `x` when `(pred x)` is truthy."
 [x pred]
 (when (pred x) x))


тогда имея предикат readable? можно писать так

(some->
 cfg-file-path
 jio/file
 (test-pred readable?)
 slurp
 edn/read-string)
источник

IS

Ilshat Sultanov in Clojure — русскоговорящее сообщество
Damir Farazetdinov
кароче остановился на таком:
(some->
 cfg-file-path
 jio/file
 readable-or-nil
 slurp
 edn/read-string)
Одной из второстепенных целей было: минимум дополнительных сущностей и визуального шума
Дамир, думай лучше над бизнес логикой) тут пара строк кода заимплементить необходимое тебе поведение. Если добавят такую функу в стдлиб придёт другой Дамир и скажет мне надо по-другому)
источник

IS

Ilshat Sultanov in Clojure — русскоговорящее сообщество
а другой Дамир точно придёт и скажет у меня джарник пухлый из-за большого стдлиб)
источник

ИФ

Иван Федоров... in Clojure — русскоговорящее сообщество
источник

ИФ

Иван Федоров... in Clojure — русскоговорящее сообщество
Война Закари Тельмана и дяди Боба
источник

D

Dos in Clojure — русскоговорящее сообщество
французский?
источник

ИФ

Иван Федоров... in Clojure — русскоговорящее сообщество
Dos
французский?
пытаюсь не забыть
источник

DL

Dmytro Lispyvnyi '(🌲... in Clojure — русскоговорящее сообщество
Sergey Trofimov
что касается readable-or-nil
у меня есть такая функция общего назначения (вот которую полезно было бы иметь в core)

(defn test-pred
 "Return `x` when `(pred x)` is truthy."
 [x pred]
 (when (pred x) x))


тогда имея предикат readable? можно писать так

(some->
 cfg-file-path
 jio/file
 (test-pred readable?)
 slurp
 edn/read-string)
ещё можно так

(some-> false
       (or nil))

:)
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
Dmytro Lispyvnyi '(🌲 🍺)
ещё можно так

(some-> false
       (or nil))

:)
Где тут предикат?
источник

DL

Dmytro Lispyvnyi '(🌲... in Clojure — русскоговорящее сообщество
Sergey Trofimov
Где тут предикат?
вместо false
источник

DL

Dmytro Lispyvnyi '(🌲... in Clojure — русскоговорящее сообщество
ну, результат применения
источник

DL

Dmytro Lispyvnyi '(🌲... in Clojure — русскоговорящее сообщество
(some-> (fs/readable? file)
       (or nil))
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
Dmytro Lispyvnyi '(🌲 🍺)
(some-> (fs/readable? file)
       (or nil))
так мне на выходе file нужен, а не результат предиката
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
Sergey Trofimov
так мне на выходе file нужен, а не результат предиката
то есть пустить значение дальше по цепочке, если оно удовлетворяет предикату
источник

DL

Dmytro Lispyvnyi '(🌲... in Clojure — русскоговорящее сообщество
Sergey Trofimov
так мне на выходе file нужен, а не результат предиката
slurp же
источник

DL

Dmytro Lispyvnyi '(🌲... in Clojure — русскоговорящее сообщество
а, туплю
источник

DF

Damir Farazetdinov in Clojure — русскоговорящее сообщество
Sergey Trofimov
(map (every-pred identity) [1 2 nil true false 3])
=> (true true false true false true)
(map (some-fn identity) [1 2 nil true false 3])
=> (1 2 nil true false 3)
А, понял. Всё-таки они разные. Не прям комплементарные.
источник