Ho eseguito in diverse situazioni in cui voglio fare una catena di operazioni su un oggetto con funzioni opzionali. "->" funziona alla grande per sequenze di comandi sullo stesso oggetto (ad esempio (c (b (a x))) diventa (-> x a b c)), tranne se alcune operazioni sono opzionali. Ad esempio, supponiamo che io volevo fare:clojure's -> (freccia) operatore e operazioni opzionali
(c
(if (> (a x) 2)
(b (a x))
(a x)
)
)
Esiste un modo per farlo in modo più chiaro con un'operazione come "->"?
Per inciso, 'cond->' è il mio campione personale nella Competizione più incomprensibile di Docstring. –
Un'altra riformulazione: "Prende x e le clausole, interpreta le clausole come coppie di test ed expr, quindi filtra x attraverso quegli expr per i quali i test corrispondenti sono veritieri." –
Pallet [thread-expr] (https://github.com/pallet/thread-expr) ha più fns simili. – noahlz