Jestem w trakcie uczenia się clojure po pracy i robię to, robiąc małą grę (kochającą bibliotekę quil), aby zapoznać mnie z różnymi aspektami clojure w konkretnym i FP ogólnie.Czy możesz przekazać dane do następnej iteracji w (dla ...)?
Tak więc, mój świat gry istnieje w postaci 3d siatki struktur danych mapy (wektor wektora mapy). Chcę iterować po każdym punkcie w przestrzeni 3d (mapa) i zmieniać dane po spełnieniu warunku. To było moje pierwsze rozwiązanie:
(struktura danych gry jest stan gry (mapa))
(defn soil-gen [game]
(let [world-x (game :world-x)
world-y (game :world-y)
world-z (game :world-z)]
(for [x (range world-x)
y (range world-y)
z (range world-z)
:when (> z (* world-z (rand)))]
(assoc-in game [:world x y z :type] :soil))))
Ale to zwraca listę wyników (moja gra struktury dane państwo) każdej iteracji zamiast jednej struktury danych gry. Powinienem jakoś przekazać wynik każdej iteracji z powrotem do. Coś jak pętla/recur prawdopodobnie, ale myślę, że nie możesz połączyć recur z dla.
Czy ktoś jest wskazówką?
dzięki
Czy dokładnie to, czego chcę, dzięki – user1782011