「Ruby は改行と空白を区別していない」という話をちらちら見かけます1。
そんなわけないのでして。
改行と空白が区別されないなら
x = 1 puts x
で 1
が表示されるはずですが,SyntaxError になります。そりゃそうだ。
また,
puts
1
で 1
が表示されるはずですが,改行しか出力されません。そりゃそうだ。
Ruby はむしろ改行と空白を区別する言語です。だからこそ文末のセミコロンが省略できるのですね。
なぜ広まった?
Ruby on Rails チュートリアル 第4版の「4.3.4 CSS、再び」
https://railstutorial.jp/chapters/rails_flavored_ruby?version=5.0#sec-css_revisited
には,
実は、Rubyは改行と空白を区別していません
というくだりがあります2。ここが発信源かっ?!
Ruby on Rails チュートリアルは本当に優れたチュートリアルだと思います。和訳の品質もけっこう高くて,作者と訳者の方々には感謝しています。
それだけに,どうしてこんな初歩的な誤りが書かれているのかと,残念に思います。