2014年4月9日にErlangの17.0がリリースされました。 17.0では新しいプリミティブタイプのMapsと専用のシンタックスが追加されて、そこそこ古い言語なのに意欲的だなぁという風に見ていました。 で、もう一つの大きな変更として、こちらのサイトでも紹介されているようにローカル関数に名前を付けられるようになりました。 先ほどのサイトの例でもあるように、これによってローカル関数の自己再帰呼出が書きやすくなります。 ローカル関数で自己再帰呼出が出来るということは関数内のループ処理が書きやすくなるので、既存コードのループ部分を書き換えるかどうかを判断するためにテストをしてみました。 テストは単純なループにどれぐらい時間がかかるかを計測したものです。 メモリ使用量は測っていないので、本来ならメモリ使用量も測るべきかな。 以下、テストに使用したコード。 loop_test(C) -> io:f