Haskellでコラッツ数列を生成する
collatz_chain :: Integer -> [Integer] collatz_chain 1 = [1] collatz_chain n | even n = n : collatz_chain (div n 2) | odd n = n : collatz_chain (n * 3 + 1)
*Main> collatz_chain 1 [1] *Main> collatz_chain 2 [2,1] *Main> collatz_chain 3 [3,10,5,16,8,4,2,1] *Main> collatz_chain 7 [7,22,11,34,17,52,26,13,40,20,10,5,16,8,4,2,1]