タグ

再帰に関するsalon_hiyakeのブックマーク (3)

  • 再帰関数を学ぶと、どんな世界が広がるか - Qiita

    0. はじめに 再帰関数は初めて学ぶときに壁になりがちで なんとなくわかった...けれど どんな場面で使えるのだろう...いい感じの例を探したい! という気持ちになりがちです。再帰関数は、なかなかその動きを直感的に想像することが難しいため、掴み所が無いと感じてしまいそうです。 そこで記事では 再帰関数の動きを追いまくることで、再帰関数自体に慣れる 再帰的なアルゴリズムの実例に多数触れることで、世界を大きく広げる! ことを目標とします。特に「再帰関数がどういうものかはわかったけど、使いどころがわからない」という方のモヤモヤ感を少しでも晴らすことができたら嬉しいです。なお記事では、ソースコード例に用いるプログラミング言語として C++ を用いておりますが、基的にはプログラミング言語に依存しない部分についての解説を行っています。 追記 1. 再帰関数とは 再帰の意味はとても広いです。自分自

    再帰関数を学ぶと、どんな世界が広がるか - Qiita
  • [設計] ループ的な処理の書き方 | FileMakerを考える

    先頭に指定文字を含む行の抽出の続き。 MLにはその後も幾つか投稿があって、色々違う実現方法が提示されてます。FileMakerでループ的な処理を書く方法が並んでいて面白いので、まとめてみました。 カスタム関数で 給前さんが提示していた方法。FMPro.jp : カスタム関数 : GetKeyLine 関数で公開されています。 スクリプト以外のループといえば、まずカスタム関数による再帰が思い浮かびます。 FileMakerの計算式は関数型言語のそれに近いもので、文としてのループはありません。ループ的な処理は基的に、再帰を使う事になります。再帰を使えば、後述の面倒なスクリプトや繰り返しフィールドを使わなくて済むので、とても強力です。 但し、カスタム関数に限らず、再帰の発生する計算式の場合、回数の上限という最大の問題があります。しかも書き方によって上限が変わってきます。 例えば以下の様に書くと

  • 再帰呼出し

    ある関数 f の定義の中に f 自身を呼び出している箇所があるとき、その呼び出しを再帰呼出し(recursive call)と言います。また、そのような定義は再帰的(recursive)である、と言います。 再帰呼出しと言っても、呼出しのための特別な構文があるわけではなく、普通に関数を呼出すだけです。呼出す側と呼出される側がたまたま同じ関数になっているだけのことです。しかし、再帰呼出しには特別な魅力があります。何かの処理をくり返したいようなとき、for 文や while 文のようなくり返し構文を使うことが多いわけですが、そうした構文を使わずに再帰的な定義により計算することも可能です。実際、ある種の処理はくり返しを使うよりも再帰的に定義したほうが自然かつ簡潔に記述できることがあります。 この章では、再帰的な関数定義の比較的簡単な例を学びます。 再帰呼出しの例 再帰呼出しの簡単な例としてよく引

  • 1