• ベストアンサー

「再帰的に比較」とはどのような比較のことを言うのですか?

「再帰的に比較」とはどのような比較のことを言うのですか? Linux diffコマンドのオプション[-r]の説明に「ディレクトリを比較するとき、見付かったサブディレクトリをすべて再帰的に比較する」とあります。「サブディレクトリをすべて比較する」なら分かるのですが「再帰的に」という意味が分かりません。理解を深めるためご教示お願いします。 再帰 ー 再帰(さいき)とは、あるものについて記述する際に、記述しているものそれ自身への参照が、その記述中にあらわれることをいう。定義において、再帰があらわれているものを再帰的定義という。(Wikipediaより)

質問者が選んだベストアンサー

  • ベストアンサー
  • 0909union
  • ベストアンサー率39% (325/818)
回答No.1

一般的な用語ですが、コンピューターソフトプログラム用語でもあります。 >。「サブディレクトリをすべて比較する」なら分かるのですが「再帰 ですが、一見すると 「サブディレクトリをすべて比較する」=「再帰的に」 に取れますが、前述の言葉は文は階層の意味が確定して入っていません。サブディレクトリとは、そのフォルダーの1階層したのフォルダーを指す場合がほとんどです。一般的な用語からすると、サブとつくんだから、その下も、また、その下も、と考えてしまうのは、日本人的な英語解釈で和製日本語ですね。 サブフォルダーとは、対象のフォルダーの1階層下のフォルダー全て。と認識してください。 一方の「再帰的」とは、あなたが調べた、説明でほぼあっています。この場合の再起的とは、上記で説明した1階層したのサブフォルーダーの更に1階層した、さらに・・・ とフォルダーがなくなるまでを検索する事を意味しています。 となるので、正確には「再帰的に検索して比較する」と言う表現が、コンピューターの世界の慣例に従う事になります。 ただし、一般的に素人に話す時は、「サブディレクトリをすべて比較する」でもぜんぜん問題ありません。そこが日本語の難しい所です。 あなたが指摘した事は、とても正しい事です。これらの事を理解せずに、 「質問を理解しないで、回等している」 とかいっているユーザー(このサイトの社員か関係者、お金もらっている人と思われるが)がいるが、その人の回答みると、上記のような事を理解していないで、知識だけで回答しているので、質問の本質を理解してないで、他人を非難している人が多く見受けられます。 ちゃんと質問の内容で状況を完璧に把握するためには、何度か質問をしないと、絶対に的を得た回答はできないはずです。それらを理解していない、小学生レベルの回答者が多いです。

abcron
質問者

お礼

サブフォルダーとは、対象のフォルダーの1階層下のフォルダー全て。と認識してください。 →ずばりこの認識が足りませんでした。英語圏ではあくまで1階層下を指すのですね。さらにその下の階層までチェック対象に入れるのであれば、それを示す単語が必要となるとのことですね。それが、「再帰的に」という単語で示されることを理解しました。ありがとうございます。

その他の回答 (2)

  • Kotori_D
  • ベストアンサー率36% (54/149)
回答No.3

プログラムでの再起処理は簡単に言えば「自分の中に自分と同じ処理を入れる」というものです。 今回、「すべてのサブディレクトリを比較」と書かれていますが、確かに結果は同じですが、処理としては少々複雑になります。 プログラムでは「指定したディレクトリ」の「サブディレクトリ」を取得する処理を行いますが、もし、サブディレクトリ内にさらにサブディレクトリがあった場合、また「指定したディレクトリ」の「サブディレクトリ」を取得することになります。 たとえば。。。 1、指定ディレクトリへ移動 2、現行ディレクトリの中のサブディレクトリを検索 3、現行ディレクトリの中にサブディレクトリがあるか?   →あるならサブディレクトリの数だけ別処理として手順1を実行   →ないなら現行処理を終える。 といった処理になります。 同じプロセスであるのに、1つの処理の中でプロセスを再起動し、それが終わると戻ってきて同じ処理を行う。 これでどんなに階層を持ったディレクトリであろうと最後まで検索がおこなえます。 こんな感じでどうでしょう。

abcron
質問者

お礼

「サブディレクトリを検索するための一連のプロセス」を対象として”再帰的な”という表現を用いているわけですね。ファイル同士の比較を対象としているものと受け取ってしまったため混乱しました。分かりやすく説明していただきありがとうございました。

  • 0909union
  • ベストアンサー率39% (325/818)
回答No.2

もう一つ言うのを忘れました。 >「サブディレクトリをすべて比較する」なら の「サブディレクトリ」は、正しくは間違っています。ディレクトリとは、フォルダーの階層を意味していますので、それに「サブ」がつくのはおかしいですね。階層(ツリー構造)の中に、「サブ」と言う概念はありませんね。これはあながた作った造語か、正しく用語を理解していない方いっている言葉でしょう。 「サブ」とつく場合は「サブフォルダー」となります。 なので、 「ディレクトリを比較するとき、見付かったサブディレクトリをすべて再帰的に比較する」 は正しくは、 「ディレクトリを比較するとき、見付かったサブフォルダーをすべて再帰的に比較する」 ただし、No1でも書きましたが、いずれにせよ和製英語として使うなら、どちらでも要件を説明しているといえます。

abcron
質問者

お礼

「ディレクトリ」と「フォルダ」は対象とするプラットフォームが異なるだけで、同じ意味を指す単語と認識していました。 その違いについて理解不足の点があり失礼しました。お聞きしたいしたいことはありますが、本質問の主題とは異なるため別の機会にお聞きしたいと思います。 ご意見ありがとうございました。

関連するQ&A

専門家に質問してみよう