Je suis coincé dans une boucle Clojure et j'ai besoin d'aide pour sortir.Coincé dans une boucle Clojure, besoin de conseils
Je veux d'abord définir un vecteur
(def lawl [1 2 3 4 5])
je
(get lawl 0)
et obtenir "1" en retour. Maintenant, je veux une boucle qui se chaque numéro dans le vecteur, donc je fais:
(loop [i 0]
(if (< i (count lawl))
(get lawl i)
(recur (inc i))))
Dans mon esprit, ce qui est censé définir la valeur de i à zéro, alors si i est plus bas que le nombre de vecteur de loi, il devrait obtenir chaque valeur de loi, puis augmenter la variable i avec 1 et essayer à nouveau, en obtenant la prochaine valeur dans le vecteur.
Cependant, cela ne fonctionne pas et j'ai passé du temps à essayer de le faire fonctionner et sont totalement bloqués, j'apprécierais de l'aide. J'ai également essayé de changer "si" en "quand" avec le même résultat, il ne fournit aucune donnée, le REPL entre simplement une nouvelle ligne et clignote.
EDIT: Correction de la récurrence.
Si vous remplacez 'inc' par, disons,' produire-html' dans les exemples 'map', vous obtiendrez probablement le meilleur ajustement pour votre cas d'utilisation. –
Wow, doseq était tout ce dont j'avais besoin! – bleakgadfly