|
|
| 訂正箇所 |
改訂 刷数 |
内容 |
P.033
ページ下部のリスト囲み、2つ目の#~
|
未定
|
| 誤 |
# プロンプトのタイトル文字列を"Ruby Recipe"にする
|
| 正 |
# プロンプトのタイトル文字列を"Ruby Recipe Sample"にする
|
|
P.044
ページ下部のリスト囲み3行目
|
未定
|
| 誤 |
utf8_str = NKF::nkf('-Ew', str)
|
| 正 |
utf8_str = NKF::nkf('-Ew', euc_jp_str)
|
|
P.056
下から5・6行目
|
未定
|
| 誤 |
Fixnumクラスは31ビットの符号付き付き整数であり、表現可能な値の範囲は-1,073,741,824〜1,073,741,823です。
|
| 正 |
FixnumクラスはCのlong型のビット数から1を引いたビット数(8*sizeof(long) - 1)の符号付き整数です。そのため、表現可能な値の範囲はプラットフォームに依存して決定されます。long が32ビット長であるプラットフォーム上ではFixnumは31ビット符号付き整数となり、表現可能な値の範囲は-1,073,741,824~1,073,741,823です。longが64ビット長であるプラットフォームではFixnumは63ビット符号付き整数となり、表現可能な値の範囲は-4,611,686,018,427,387,904~4,611,686,018,427,387,903です。Fixnum は少なくとも31ビット長であることが保証されています。
|
|
P.067
ページ最下部のリスト囲み
|
未定
|
| 誤 |
require 'rubygems'
require 'measure'
require 'measure/length'
|
| 正 |
require 'rubygems'
require 'measure/length'
|
|
P.089
下から2行目
|
未定
|
| 誤 |
要素数が指定しなければ
|
| 正 |
要素数を指定しなければ
|
|
P.090
本文下から5・6行目(2箇所)
|
未定
|
| 誤 |
LazyList.fromメソッド
|
| 正 |
LazyList.tabulateメソッド
|
|
P.134, 135
リスト囲み、計6箇所
|
未定
|
|
P.136
1つ目のリスト囲み、caseのインデント
|
未定
|
| 誤 |
def self.create(file_type)
case file_type
when :mp3
|
| 正 |
def self.create(file_type)
case file_type
when :mp3
|
|
P.136
2つ目のリスト囲み、2行目
|
未定
|
| 誤 |
decoder = decoder_factory.create(file_type)
|
| 正 |
decoder = DecoderFactory.create(file_type)
|
|
P.139
リスト囲み、5行目
|
未定
|
| 誤 |
attr_reader :x, y
|
| 正 |
attr_reader :x, :y
|
|
P.173, 174, 175
各リスト囲み
|
未定
|
| 誤 |
context[:port] => 389
(略)
context[:lang] => "us"
|
| 正 |
context[:port] = 389
(略)
context[:lang] = "us"
|
|
P.183
リスト囲みの最下行
|
未定
|
| 誤 |
"".empty? #=> false
|
| 正 |
"".empty? #=> true
|
|
P.197
2つ目のリスト囲み、下から2行目
|
未定
|
| 誤 |
:encording => 'UTF-8'
|
| 正 |
:encoding => 'UTF-8'
|
|
P.199
最下部のリスト囲み、2行目
|
未定
|
| 誤 |
user.login = "shimada"
|
| 正 |
user.login = "mrkn"
|
|
P.202
上から3つ目のコード
|
未定
|
| 誤 |
DB = Sequel('postgres://user:password@localhost/my_db')
|
| 正 |
DB = Sequel.connect('postgres://user:password@localhost/my_db')
|
|
P.202
COLUMNの2つ目のコード
|
未定
|
| 誤 |
DB = Sequel('sqlite://zipcode.sqlite3')
|
| 正 |
DB = Sequel.connect('sqlite://zipcode.sqlite3')
|
|
P.205
上から4行目
|
未定
|
| 誤 |
集合から成るDataSeオブジェクト
|
| 正 |
集合から成るDataSetオブジェクト
|
|
P.299
6行目
|
未定
|
| 誤 |
では、次にこのタプルスペースを利用して複数のプロセスで分数処理をしてみます。
|
| 正 |
では、次にこのタプルスペースを利用して複数のプロセスで分散処理をしてみます。
|
|
P.364
1つ目のリスト囲み
|
未定
|
| 誤 |
$ install libfreeimage-dev
|
| 正 |
$ apt-get install libfreeimage-dev
|
|
P.425
リスト囲み、1行目
|
未定
|
| 誤 |
require 'test/unit'
|
| 正 |
require 'test/unit'
require 'person'
require 'team'
|
|
P.431
2つ目のリスト囲み、冒頭のrequire
|
未定
|
| 誤 |
require 'test/unit'
require 'rubygems'
require 'mocha'
|
| 正 |
require 'test/unit'
require 'rubygems'
require 'mocha'
require 'person'
require 'team'
|
|
P.432
リスト囲み、冒頭にrequireを追加
|
未定
|
| 誤 |
|
| 正 |
require 'test/unit'
require 'rubygems'
require 'mocha'
require 'person'
require 'team'
|
|
P.496
1つ目のリスト囲みおよび2つ目のリスト囲みの1行目
|
未定
|
| 誤 |
task :byebye
|
| 正 |
task :byebye do
|
|
P.537
リスト囲み3行目
|
未定
|
| 誤 |
puts ISeq.compile("puts 'Hello,VM'").disasm,"nn"
|
| 正 |
puts ISeq.compile("puts 'Hello,VM'").disasm
|
,"nn" は不要
|
|
P.551
1つ目のリスト囲み(define_lambda_alias.rb)
|
未定
|
| 誤 |
# coding: UTF-8
methods = Kernel.private_instance_methods
module Kernel
alias λ lambda
end
sym = (Kernel.private_instance_methods - methods)[0]
sym.encoding #=> #
f = λ{ 1 + 2 }
f.call #=> 3
f = __send__('λ'.intern) { 1 + 2 }
f.call #=> 3
# 文字エンコーディングのみが異なる
f = __send__('λ'.force_encoding('EUC-JP').intern) { 1 + 2 }
#=> undefined method `λ' for main:Object (NoMethodError)
# バイト列と文字エンコーディングの両方が異なる場合
f = __send__('λ'.encode('EUC-JP').intern) { 1 + 2 }
#=> undefined method `??' for main:Object (NoMethodError)
|
| 正 |
※▼1つ目のリスト囲み※
#### define_lambda_alias.rb
# coding: UTF-8
module Kernel
alias λ lambda
end
※▲※
※▼2つ目のリスト囲み※
# coding: UTF-8
methods = Kernel.private_instance_methods
require 'define_lambda_alias'
sym = (Kernel.private_instance_methods - methods)[0]
sym.encoding #=> #
f = λ{ 1 + 2 }
f.call #=> 3
f = __send__('λ'.intern) { 1 + 2 }
f.call #=> 3
# 文字エンコーディングのみが異なる
f = __send__('λ'.force_encoding('EUC-JP').intern) { 1 + 2 }
#=> undefined method `λ' for main:Object (NoMethodError)
# バイト列と文字エンコーディングの両方が異なる場合
f = __send__('λ'.encode('EUC-JP').intern) { 1 + 2 }
#=> undefined method `??' for main:Object (NoMethodError)
※▲※
|
リスト囲みを2つに分離
|
|
P.553
1つ目のリスト囲み、1~3行目
|
未定
|
| 誤 |
a = "\000\001\002\003"
a[2] #=> 2
a[2] = 5
|
| 正 |
a = "\000\001\002\003".force_encoding('ASCII-8BIT')
a[2] #=> "\002"
a[2] = "\005"
|
\はバックスラッシュ
|
|
P.555
リスト囲み、最下行
|
未定
|
|
|
ページ上に戻る
|