(defn fact
([n] (fact n 1))
([n acc] (if (= n 0)
acc
(recur (- n 1) (* acc n)))))
(defn fact [n] (apply * (range 1 (+ n 1))))
Да, вы можете сделать это предположение, потому что оно указано в документация :
куча [2 * k + 2] для всех k , считая
элементы с нуля. Ради
сравнение, несуществующие элементы
считается бесконечным.
интересным свойством кучи является то, что
куча [0]
всегда самая маленькая
элемент.
(И это, вероятно, причина того, что нет функции peek
: в ней нет необходимости.)