Ich habe in mehreren Situationen ausgeführt, in denen ich eine Kette von Operationen auf einem Objekt mit optionalen Funktionen ausführen möchte. "->" eignet sich hervorragend für Sequenzen von Befehlen auf demselben Objekt (zB (c (b (a x))) wird (-> x a b c)), außer wenn einige Operationen optional sind. Angenommen, ich tun wollte: clojure's -> (Pfeil) Operator und optionale Operationen
(c
(if (> (a x) 2)
(b (a x))
(a x)
)
)
Gibt es eine Möglichkeit zu tun, dass in einer klareren Weise unter Verwendung einer Operation wie „->“?
Übrigens ist 'cond->' mein persönlicher Champion im unverständlichsten Docstring-Wettbewerb. –
Eine andere Umformulierung: "Nimmt x und Klauseln, interpretiert Klauseln als Paare von Test und Ausdruck, dann threads x durch jene Ausdrücke, für die die entsprechenden Tests truthy sind." –
Pallets [thread-expr] (https://github.com/pallet/thread-expr) hat mehr, ähnliche fns. – noahlz