(ns main
"fmt"
"github.com/jcla1/gisp/core")
(def main (fn []
(let [[n (collatz-longest 1000000)]]
(fmt/println "Longest sequence produced by:" n)
(fmt/printf "It was %d elements long!\n" (collatz-length n))
())))
(def collatz-longest (fn [below-val]
(loop [[below below-val]
[n 1.0]
[max 0]]
(if (= below 1) (+ 1 n)
(let [[l (collatz-length below)]
[m (+ -1 below)]]
(if (> l max)
(recur m (assert float64 below) (assert int l))
(recur m n max)))))))
(def collatz-length (fn [n]
(loop [[next n]
[acc 1]]
(if (= next 1)
acc
(recur (collatz-next next) (int (+ acc 1)))))))
(def collatz-next (fn [n]
(if (= 0 (mod n 2))
(* 0.5 n)
(+ 1 (* 3 n)))))
정신이 혼미해진다
함슬람은 어디에나 있고 어디에도 없다