euler/014.bruijn

Problem description

# TODO: Really slow

:import std/Combinator .
:import std/List .
:import std/Math .
:import std/Number/Binary .

hailstone-length y [[[0 =? (+1b) 1 go]]] (+0b)
	go =²?0 (2 ++1 /²0) (2 ++1 (↑¹0 + 0))

solve [max-by (compare ⋔ hailstone-length) (take 0 (iterate inc (+1b)))]

:test ((solve (+1000)) =? (+871b)) ([[1]])

main [solve (+1000000)]