fcpのコメント: なんかところどころおかしいよ (スコア 5, 参考になる) 44
目の付け所は面白いと思いますが、 PDF 版の第 3 章「演算」 (12~14 ページ) を眺めて 2005 年版言語仕様 (英語) と照らし合わせてみたところ、内容の正確性に疑問が残ります。
- ** は「階乗演算子」と説明されていますが (p. 12)、正しくは「べき乗演算子」です (言語仕様 6-4 ページの表 6-2)。
- 論理否定 ¬ の優先順位が定義されていないという記述があります (p. 13)。言語仕様 6-11 ページの図 6-10 によれば、 ¬ を論理否定の単項演算子として使う場合、括弧を付けなければならないことになっているので、優先順位が問題になることはありません。単項演算子 ¬ はこのほかにビット否定や「イベント」の否定にも使われますが (「イベント」というのが何であるかは僕は把握してない)、構文によればこの単項演算子がとれるのは単独の変数か括弧に入った式と指定されているので、優先順位が最高と指定されているのと同じことです。 (なお記号 ¬ 自体は他の記号と組合せて別の演算子を作るのにも使われます。「¬=」で非等価など。)
- ちなみに p. 12 の演算子の優先順位の表には「否定演算子 ¬」というのが入っていますが、これが入っているのは p. 13 の記述と矛盾しますし、言語仕様にもこういう記述はないみたいなので、 p. 12 の表に入っていること自体が誤りではないかと思います。
- = は「代入演算子」と説明されていますが (p. 13)、演算子としての「=」は等価比較であり (言語仕様 6.2.1 節など)、 C でいう == と同じです。 HAL/S には代入文 (言語仕様 7.3 節) はありますが、「代入演算子」なるものは存在しないようです。
- 「E は G の下添字、つまり対数 G の logE を示す」 (p. 13) というのは僕には意味不明ですが、下付きは配列の添え字等を表します (言語仕様 2.4 節と 5.3 節)。対数は無関係。
他の章はまともかもしれませんが、 3 ページしかない章の中にこれだけ言語仕様と食い違う点があると、残りを読む気があまり起きないというのが正直なところ。もう少し慎重に事実確認をしてくれればなあと思います。特に、先人のしたことを「悲惨極まりない」と酷評するのであればなおさらです。目の付け所は面白いだけに、もったいない感じがします。