実践F# 関数型プログラミング入門の正誤表の補足
In this article
技術評論社さんで「実践F# 関数型プログラミング入門」の正誤表 がやっと公開されました。正誤表の公開が遅れまして、本当に申し訳ございませんでした。本当なら、9月には公開されないといけなかったのですが、諸般の事情で遅れてしまいました。公開されて正誤表には掲載できなかった箇所がございますので、以下に追加を掲載させていただきます。分量が多いのですが、ご容赦ください。また、諸般の事情から公開が遅れまして、本当に申し訳ございませんでした。
Expand table
誤
筆者が考える本書の読み方は、1章から読み進めることも、あるいは興味のある章から読んで、必要に応じて他の章を読むというものです。
正
本書の読み方ですが、1章から順に読み進めてもよいし、興味のある章を読みながら、必要に応じて他の章を読むのもよいでしょう。
Expand table
誤
参照透過性(参照透明性とも呼ばれます)
正
参照透明 性(参照透過 性とも呼ばれます)
Expand table
誤
アルゴリズム実装には関数型プログラミングに影響を受けて
正
アルゴリズムは 関数型プログラミングに影響を受けて
Expand table
Expand table
Expand table
誤
適材適所で言語が存在するのかということです。
正
適材適所で言語が存在するのでしょうか。
Expand table
誤
「解くべき問題」ということです。
正
「解くべき問題」です。
Expand table
誤
解き方をモデル化したのがプログラミング言語であるということです。
正
解き方をモデル化したのがプログラミング言語です 。
Expand table
誤
「Abstract Art」
正
「Abstract a rt」
Expand table
誤
メタ言語として開発された。
正
メタ言語として開発されたものである。
Expand table
誤
ラムダ計算で証明できるというものです。
正
ラムダ計算を使って 証明できるというものです。
Expand table
誤
「不遇の関数型言語」と呼んでいます。
正
筆者は 「不遇の関数型言語」と呼んでいます。
Expand table
誤
回路以外に流れることで他のトランジスタ回路へ影響を及ぼす
正
回路以外に流れることでトランジスタ回路の動作に 影響を及ぼす
Expand table
誤
しかしながら、Webの世界では
正
我々が利用している Webの世界では
Expand table
誤
不変性(英語でImmutable)という特徴があります。不変性とは、変数に値を代入すると(関数型言語の世界では、代入ではなく束縛と呼びます)値を変更できなくる性質のことです。
正
不変(英語でImmutable)な変数 という特徴があります。不変な変数 とは、変数に値を代入すると(関数型言語の世界では、代入ではなく束縛と呼びます)値を変更できないも のです。
Expand table
誤
(1行でも複数行)
正
(1行でも複数行でも可 )
Expand table
誤
bool型に係る演算
正
bool型に関わる 演算
Expand table
誤
x |> f=> f x
正
y |> g => (|>) y g // 演算子の関数化
=> (fun x f -> f x) y g // インライン展開
=> let x = y in let f = g in f x // インライン展開
=> g y // 極めて単純なインライン関数でのみ行われる特殊な変換
Expand table
誤
±1.5×10-45 ~ ±3.4×1038(7桁)
正
±1.5×10 -45 ~ ±3.4×1038 (7桁)
Expand table
誤
±5.0×10-324 ~ ±1.7×10308(15~16桁)
正
±5.0×10 -324 ~ ±1.7×10308 (15~16桁)
Expand table
誤
±1.0×10-28 ~ ±7.9×1028(28~29桁)
正
±1.0×10 -28 ~ ±7.9×1028 (28~29桁)
Expand table
誤
> printfn "%6.2d" 123.45;;12345val it : unit = ()> printfn "%+6d" 123; printfn "%+6d" -123;; +123 -123
正
> printfn "%+6d" 123; printfn "%+6d" -123;; +123 -123
Expand table
誤
when句によるガートと網羅性
正
when句によるガード と網羅性
Expand table
誤
全体を全体を{ ... }
正
全体を { ... }
Expand table
誤
failewithで例外を発生させる
正
failwith で例外を発生させる
Expand table
誤
let func n = let f n = seq { 1..n } | > Seq.filter (fun n -> n%3=0 || n%5=0) n | > f | > Seq.sum
正
let func n = let f n = seq { 1..n } |> Seq.filter (fun n -> n%3=0 || n%5=0) n |> f |> Seq.sum
Expand table
誤
let func n = let f n = seq { 1..n } | > Seq.filter (fun n -> n%3=0 || n%5=0) n | > f | > Seq.sum
正
let func n = let f n = seq { 1..n } |> Seq.filter (fun n -> n%3=0 || n%5=0) n |> f |> Seq.sum
Expand table
誤
ちなみにF#には、いわゆるbreakやcontinueなど、ループ内で使用する専用の制御文はありません。
正
脚注と重複した内容のため本文から削除させていただきます
Expand table
誤
「(unit -> int)」
正
(unit -> int)
Expand table
Expand table
誤
Recourceful.txt
正
Res ourceful.txt
Expand table
誤
7と8のノードの配置について
正
7と8のノードを入れ替えます
Expand table
誤
Queu<'T>クラス
正
Queue <'T>クラス
Expand table
誤
insertSort
正
挿入ソートは英語でinsertion sortであり、関数名をinsertSortでなくinsertionSortとするのがより適切です。
Expand table
誤
Seq.empty;;
正
> Seq.empty;;
Expand table
誤
union、diffrence、intersect(集合演算)
正
union、difference 、intersect(集合演算)
Expand table
誤
オプショナル引数(optional argument)と呼ぶ
正
オプショナル引数(optional argument)と言う
Expand table
誤
リスト8-47のような
正
リスト8-48 のような
Expand table
誤
型拡張には、内在的拡張(intrinsic extension)と任意的拡張(optional extension)の2種類があり
正
本書で参照させていただいた「F#ドキュメント翻訳向上委員会」の最新のご提案では、intrinsic extensionの訳語は固有拡張、optional extensionの訳語は任意拡張となっています。
Expand table
Expand table
誤
.NET Frameworkのライブラリ使い方を何度も前章までで説明してきました。
正
.NET Frameworkのライブラリを前章までで何度も使用 してきました。
Expand table
誤
Framewrokのライブラリは、アセンブリ(物理的な実行ファイルのことで、拡張子がDLLかEXEになります)
正
Framewor kのライブラリは、アセンブリ(物理的な実行ファイルのことで、拡張子がDLLかEXEになります)
Expand table
誤
リスト9-1に示した
正
リスト9-3 に示した
Expand table
誤
リスト9-1とリスト9-2に示した
正
リスト9-3 とリスト9-4 に示したに示した
Expand table
誤
丸括弧を付けるのが当たり前と説明しまし。
正
丸括弧を付けるのが当たり前と説明しました。
Expand table
誤
機能の1として含まれています。
正
機能の1つ として含まれています。
Expand table
誤
公開する仕様を宣言宣言するものです。
正
公開する仕様を宣言 するものです。
Expand table
誤
「モジュール宣言が必要」が必要
正
「モジュール宣言 」が必要
Expand table
誤
暗黙的にモジュール名をファイル名として使用できる
正
暗黙的にファイル 名をモジュール 名として使用できる
Expand table
誤
実装コードとシグネチャの説明文について
正
実装コードとシグネチャの説明文を入れ替えます
Expand table
Expand table
誤
提供しますから、非同期プログラミングモデルを説明する前に同期プログラミングを振り返ってみましょう。
正
提供しますが、 非同期プログラミングモデルを説明する前に同期プログラミングを見直して みましょう。
Expand table
誤
.NET Frameworkが提供する非同期プログラミングとは、「BeginとEndという名前で始まるメソッド」を組み合わせることで(Begin/End パターン)実現しますから、複数の非同期プログラミングを組み合わせた場合を考えてみましょう。
正
.NET Frameworkが提供する非同期プログラミングは 、「BeginとEndという名前で始まるメソッド」を組み合わせることで(Begin/End パターン)実現します。では、 複数の非同期プログラミングを組み合わせた場合を考えてみましょう。
Expand table
誤
表11-9に示したWebClient.AsyncDownloadString
正
表11-10 に示したWebClient.AsyncDownloadString
Expand table
誤
エージェントと呼ばれるます
正
エージェントと呼ばれます
Expand table
Expand table
Expand table
誤
表12-3に示したquery関数
正
表12-4 に示したquery関数
Expand table
Expand table