Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

2
respostas

dois parametros

Por que a funcao recur é chamada com dois parametros sendo que a funcao soma só recebe um parametro?

(defn soma[n] 
    (loop [contador 1 soma 0]
        (if (> contador n) soma
        (recur (inc contador) (+ soma contador)))))
2 respostas

Pelo que eu entendi, o recur está chamando chamando o loop com novos valores (contador e soma) e não a função.

Exatamente, acontece que pelo que entendi o recur, chama a mesma função soma, e já que a função soma só recebe um parâmetro. Aqui tem recur mais dois parâmetros... e esse código está funcionando. Isso que não entendi