auの日記

プログラミング初心者の日記。(auはハンドルネームです)

OCamlの再帰で用いる「rec」って何の略称?

auです。

OCaml再帰を書く際に「rec」を用いるのですが、これって何の略称なのか気になってしまったので調べることにしました。

recは何の略称?

結論から言うと、再帰的の意味をもつ「recursive」でした。読み方はリカーシブです。以下のOCamlの英語のサイトに書いてありますね。

ocaml.org

関数内で自身を呼び出すコードが含まれていることを「再帰呼び出し(recursive call)」と呼び、結果を保存する変数を用意しないで書けるなど、コード的には短くなるような処理を書くことができます。

しかし、この書き方だと全ての呼び出しが終わってからの計算なので、フィボナッチ数列を求める問題を再帰呼び出して解くと、非常に時間がかかってしまいます。

そこで、計算結果を残しつつ再帰呼び出しすることができる、末尾再帰で書いた方が計算量が小さくすみます。

そちらは記事にしてあるのでぜひ読んだり調べたりしてみてください。

program-shoshinsya.hatenablog.com