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