なんかErlangで書けって言われた気がする
-module(collatz). -export([main/1]). collatz([H|T]) when H /= 1 -> case H rem 2 of 0 -> collatz([H div 2, H | T]); 1 -> collatz([3 * H + 1, H | T]) end; collatz(X) -> X. main([X]) -> L = lists:reverse(collatz([list_to_integer(X)])), io:format("~p~n", [L]); main(_) -> halt(1).
$ escript collatz.erl 11
できればリストの先頭じゃなくて最後尾の値でガードやパターンマッチを書きたいんですけど、良い方法無いんでしょうか?