Como o reduce funciona
Como o reduce funciona
Seção intitulada “Como o reduce funciona”O reduce é uma função de alta ordem em Clojure que aplica uma função a uma coleção de elementos, acumulando o resultado. Ele é útil para transformar uma coleção em um único valor.
(reduce + [1 2 3 4 5]);; => 15Implementar o reduce
Seção intitulada “Implementar o reduce”Você pode implementar sua própria versão do reduce para entender melhor como ele funciona.
(defn my-reduce [f init coll] (if (empty? coll) init (recur f (f init (first coll)) (rest coll))))
(my-reduce + 0 [1 2 3 4 5]);; => 15Variação de parâmetros na função
Seção intitulada “Variação de parâmetros na função”O reduce pode aceitar diferentes números de parâmetros, permitindo flexibilidade na sua utilização.
(reduce (fn [acc x] (+ acc (* x x))) 0 [1 2 3 4]);; => 30Utilizar o loop
Seção intitulada “Utilizar o loop”O loop pode ser usado para criar loops explícitos em Clojure, o que pode ser útil em algumas situações.
(loop [acc 0 coll [1 2 3 4 5]] (if (empty? coll) acc (recur (+ acc (first coll)) (rest coll))));; => 15Fazer recorrência dentro do loop
Seção intitulada “Fazer recorrência dentro do loop”Você pode usar a função recur dentro de um loop para criar recursões eficientes.
(defn sum [coll] (loop [acc 0 coll coll] (if (empty? coll) acc (recur (+ acc (first coll)) (rest coll)))))
(sum [1 2 3 4 5]);; => 15