2017-01-14 6 views
1

Clojure Quelle für repeatedly lautet:Clojure „wiederholt“

eine Funktion von No args nimmt, vermutlich mit Nebenwirkungen, und liefert unendlich (oder Länge n, wenn geliefert) lazy-Sequenz von Aufrufen zu.

Ohne die obige Erklärung zu wissen, wie folgere ich, dass die unter Definition von repeatedly eine Funktion ohne Argumente nimmt? .

(defn repeatedly 
    ([f] (lazy-seq (cons (f) (repeatedly f)))) 
    ([n f] (take n (repeatedly f)))) 

Antwort

3

Durch die Referenzen der Funktion Suche in

Hinweis wird übergeben:

(f) 

f wird nur in der Definition dreimal verwiesen. Zwei dieser Zeiten wird es an rekursive Aufrufe übergeben (Sie können sagen, dass es nicht aufgerufen wird, weil es nicht von Klammern umgeben ist), und einmal, wo es aufgerufen wird.

In dem Fall, in dem es aufgerufen wird (umgeben von Klammern), können Sie sagen, dass es 0 Argumente erwartet, da keine übergeben werden.