| 
			|  | アルビレオです。
 
 だんだん秀丸エディタから離れてメタな議論になってきているのが心配ですが…
 
 >{A
 > {B *
 >  {C
 >   0123
 >   {D
 >    4567
 >   }D'
 >  }C'
 > }B'
 >}A'
 >を例にすると、仮に B, C' の行末にカーソルがある場合、「カーソル位置を
 >囲んでいる括弧のペア」は B, B' 隣の {, } までで、これが最も外側の括弧
 >ですよね。逆にこの中で、最も内側の括弧は D, D' 隣の {, } ではないで
 >しょうか?
 
 はっきりさせるためにBの後ろに * を入れました。この * とそれぞれの括弧と
 の関係を整理してみます。(A,B,Cなどは「文字」ではなく説明のためにそれぞれ
 の括弧につけた「ラベル」と考えてください)
 ・A-A'のブロックは * を囲んでいる
 ・B-B'のブロックは * を囲んでいる
 ・C-C'のブロックは * を囲んでいない
 ・D-D'のブロックは * を囲んでいない
 
 * を含む括弧のペアはA-A'とB-B'の2つあることになります。
 Iranoanさんの解釈だとA-A'のペアについては無視しているようですが、プログ
 ラムコードでも数式でもHTMLタグでも、このような入れ子構造を持つ場合は
 「* はA-A'にも囲まれている」と考えるのは普通ではないでしょうか。
 このように * を囲む(Iranoanさん流に言えば*より外側の)括弧のペアが複数存
 在するので、それらのうちどのペアを指しているかをあらわすために「最も〜」
 などの表現を使うわけです。
 
 C-C'やD-D'を「内側」と呼ぶのはB-B'の「ブロック」から見た場合の関係として
 は「C-C'はB-B'の内側」となるので自然ですが、*の位置の「点」を基準に考え
 ると「C-C'は*の内側」という表現は変ではないでしょうか。
 
 数式を例にした方がわかりやすいかもしれませんね。
 a = ((b*(c+1))-d)
 という式の場合、大多数の人は
 ・bは((b*(c+1))-d)に含まれている
 ・bは(b*(c+1))に含まれている
 ・bは(c+1)に含まれていない
 と考え、「bを含む最も内側の括弧」といえば、b*(c+1)を囲んでいる括弧を指し
 ていると受け取るでしょう。
 括弧の位置が複数行にまたがっていても、入れ子構造が保たれている限りは同じ
 ように考えることができます。
 
 (って、書いてるうちにIranoanさんも何か気づかれたようですが…まあいいや)
 
 > もし「カーソル位置を囲んでいる括弧のペアの中でもっとも」という表現を
 >使うなら、「内/外側」の表現ではなく「最初/最後」の方が解りやすい?
 
 「最初/最後」という表現はテキストの先頭から見た場合の最初(A)と最後(A')の
 ように受け取られる可能性が高く、かえって紛らわしいです。
 
 
 | 
 |