Rustで作るプログラミング言語 ——コンパイラ/インタプリタの基礎からプログラミング言語の新潮流まで

サポートページ

この記事を読むのに必要な時間:およそ 0.5 分

お詫びと訂正(正誤表)

本書の以下の部分に誤りがありました。ここに訂正するとともに,ご迷惑をおかけしたことを深くお詫び申し上げます。

(2024年9月25日最終更新)

「はじめに」 P.vi:4行目

ほとんど扱いませんません
ほとんど扱いません。

第1章 P.13:図1.4

図01-04_誤.png
図01-04_正.png

第2章 P.48:1行目

深淵な理由」
「深遠な理由」

第2章 P.60:下から3つめのコードブロック

/vec2sqlen { square exch square exch + }
/vec2sqlen { square exch square exch + } def

第3章 P.81: コードブロック

fn number(mut input: &str) -> &str {
   if matches!(
     input.chars().next(),
     Some(_x @ ('-' | '+' | '.' | '0'..='9'))
   ) {
     while matches!(
       input.chars().next(),
       Some(_x @ ('.' | '0'..='9'))
     ) {
       let mut chars = input.chars();
       chars.next();
       input = chars.as_str();
     }
   }
fn number(mut input: &str) -> &str {
   if matches!(
     input.chars().next(),
     Some(_x @ ('-' | '+' | '.' | '0'..='9'))
   ) {
     let mut chars = input.chars();
     chars.next();
     input = chars.as_str();
     while matches!(
       input.chars().next(),
       Some(_x @ ('.' | '0'..='9'))
     ) {
       let mut chars = input.chars();
       chars.next();
       input = chars.as_str();
     }
   }

第4章 P.156: 下から2行目

これは0から100までの整数を出力するはずです。
これは0から99までの整数を出力するはずです。

第4章 P.161:2つめのコードブロック1行目

#[derive(Default)]ß
#[derive(Default)]

第4章 P.184:箇条書き

⑦break文が出現した場合は、EvalResult::Break(BreakResult::Continue)を返す
continue文が出現した場合は、EvalResult::Break(BreakResult::Continue)を返す

第5章 P.234:1行目

6行目の16列目で生じている
5行目の16列目で生じている

第6章 P.313: 箇条書き

②ターゲットスタックに引数のリストを追加する。ここでターゲットとしてTarget::Local(arg.to_string())を使9っているのがポイントで、これによって関数内の識別子が引数に拘束されるようになる
②ターゲットスタックに引数のリストを追加する。ここでターゲットとしてTarget::Local(arg.to_string())を使っているのがポイントで、これによって関数内の識別子が引数に拘束されるようになる