Size: a a a

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

2021 July 01

DF

Damir Farazetdinov in Clojure — русскоговорящее сообщество
А, вообще-то там есть подходящий ответ: «имя указывается перед списком параметров»
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
потом жалуются, что стектрейсы у них непонятные 😊
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
у меня в проекте из 233 анонимных функций 105 с именем (45%)
источник

DL

Dmytro Lispyvnyi '(🌲... in Clojure — русскоговорящее сообщество
если именовать функцию - зачем её инлайнить?
источник

DL

Dmytro Lispyvnyi '(🌲... in Clojure — русскоговорящее сообщество
её и не потестишь
источник

ST

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

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
ну и родительская функция не делает то, что делает дочерняя, поэтому в трейсах название родительской функции плюс fn выглядит misleading
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
плюс имя анонимной функции документирует её назначение
источник

E

ETL in Clojure — русскоговорящее сообщество
а можно для тех кто в танке - что значит анонимная функция с именем?
это letfn ?
функция с именованными позиционными аргументами (fn [x y] ...)?
источник

A

Andrey in Clojure — русскоговорящее сообщество
(fn foo [bar] bar)
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
(fn [])
=> #object[user$eval72333$fn__72334 0x14649f21 "user$eval72333$fn__72334@14649f21"]
(fn foo [])
=> #object[user$eval72339$foo__72340 0x4f4de905 "user$eval72339$foo__72340@4f4de905"]
источник

MB

Mike Bohdan in Clojure — русскоговорящее сообщество
А что это даёт? Я юзкейс только в рекурсии нашёл или ещё что-то есть?
источник

ST

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

MB

Mike Bohdan in Clojure — русскоговорящее сообщество
Та я почитал, думал есть какое-то практическое применение ещё
источник

MB

Mike Bohdan in Clojure — русскоговорящее сообщество
А как этот кейс тестится? Из объекта же мету не достать и имя, насколько я знаю, он не хранит нигде
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
да хотя бы такое
{:a (fn []) :b (fn [])}
=>
{:a #object[user$eval72533$fn__72534 0x75cde17f "user$eval72533$fn__72534@75cde17f"],
:b #object[user$eval72533$fn__72536 0x2506cc8c "user$eval72533$fn__72536@2506cc8c"]}
{:a (fn a []) :b (fn b [])}
=>
{:a #object[user$eval72541$a__72542 0x2ffba2c "user$eval72541$a__72542@2ffba2c"],
:b #object[user$eval72541$b__72544 0x61ef15ed "user$eval72541$b__72544@61ef15ed"]}
источник

ST

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

MB

Mike Bohdan in Clojure — русскоговорящее сообщество
Но нормальный кейс вида (is (= (foo 1) bar)) как возвращая именованные функции все-равно не написать
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
документирование назначения фyнкции не практическое применение?
источник

MB

Mike Bohdan in Clojure — русскоговорящее сообщество
Нет, не вижу смысла в этом) Документация на архитектуру и хайлевел – да, на реализацию – нет, слишком частые изменения. Плюс можно просто математические термины тащить и все будет понятно, мы же фп пишем
источник