Uruchomiłem w kilku sytuacjach, w których chcę wykonać łańcuch operacji na obiekcie z opcjonalnymi funkcjami. "->" działa świetnie na sekwencje poleceń na tym samym obiekcie (np. (c (b (a x))) staje się (-> x a b c)), chyba że niektóre operacje są opcjonalne. Na przykład, załóżmy, że chciałem zrobić:Operator clojure -> (strzałka) i operacje opcjonalne
(c
(if (> (a x) 2)
(b (a x))
(a x)
)
)
Czy jest jakiś sposób, aby to zrobić w jaśniejszy sposób za pomocą operacji jak „->”?
Nawiasem mówiąc, 'cond->' jest moim osobistym mistrzem w najbardziej nieczytelnym konkursie na doctring. –
Kolejne przeformułowanie: "bierze x i klauzule, interpretuje zdania jako pary testu i wyraż, a następnie wątki x przez te wyrażenia, dla których odpowiednie testy są zgodne z prawdą." –
Pallet [thread-expr] (https://github.com/pallet/thread-expr) ma więcej podobnych programów fns. – noahlz