Trovo che io tendo ad avere bisogno di variabili intermedie. In Clojure ha la forma di let binding, come cmp-result-1
e cmp-result-2
nella funzione seguente.
(defn str-cmp
"Takes two strings and compares them. Returns the string if a match; and nil if not."
[str-1 str-2 start-pos substr-len]
(let [cmp-result-1 (subs str-1 start-pos substr-len)
cmp-result-2 (subs str-2 start-pos substr-len)]
(compare cmp-result-1 cmp-result-2)))
Potrei riscrivere questa funzione senza di loro, ma per me, lo scopo della funzione sembra più chiaro. Tendo a farlo abbastanza nel mio principale, e questo è principalmente per scopi di debug, quindi posso passare una variabile per stampare l'output intermedio.
Questa è una cattiva forma e, in caso affermativo, perché?
Grazie.