Sto leggendo un libro su Clojure, e mi è venuto da un esempio che I dont comprendere appieno ..clojure chiarimento parziale
Ecco il codice in repl:
user=> (repeatedly 10 (rand-int 10))
ClassCastException java.lang.Integer cannot be cast to clojure.lang.IFn clojure.core/repeatedly/fn--4705 (core.clj:4642)
user=> (repeatedly 10 (partial rand-int 10))
(5 0 5 5 2 4 8 8 0 0)
La mia domanda è: perché è necessario il partial
qui, e come si inserisce nella definizione partial
, e & definizione &. Parziale ...
Takes a function f and fewer than the normal arguments to f, and
returns a fn that takes a variable number of additional args. When
called, the returned function calls f with args + additional args.
Quindi, come si inserisce?
Ho pensato che in qualche modo, il problema riguardasse '(rand-int 10)' restituendo un numero .. '#()' sicuramente sembra una soluzione migliore, semanticamente –