W odpowiedzi na to question odpowiadającego wykorzystuje funkcję reducedCo robi „” obniżonej funkcji i jak z niego korzystać
(defn state [t]
(reduce (fn [[s1 t1] [s2 t2]]
(if (>= t1 t) (**reduced** s1) [s2 (+ t1 t2)]))
(thomsons-lamp)))
Spojrzałem na dok i źródła i nie można go całkowicie Grok.
(defn reduced
"Wraps x in a way such that a reduce will terminate with the value x"
{:added "1.5"}
[x]
(clojure.lang.Reduced. x))
W powyższym przykładzie myślę (reduced s1)
ma zakończyć redukcję i powrotu S1.
Czy używasz zredukować + zredukowany ekwiwalent hipotetycznego zmniejszania lub zmniejszania-aż do funkcji, jeśli takie istnienie istniało?
źródłem 'reduced' nie powiedzieć, dużo - musisz przyjrzeć się źródłu 'redu ', aby naprawdę wiedzieć, co się dzieje. – Alex
Nawet źródło "redukuj" wywołuje niektóre metody implementacji. – noisesmith