実行結果が誤っています。
誤 double.call(1, 2, 3) #=> [2, 3, 4] 正 double.call(1, 2, 3) #=> [2, 4, 6]
本文中で「左端の引数、あるいは途中の引数だけを省略可能にすることはできません。」とありますが、これは古いRubyの仕様の記述が残っていました。
現在のRubyでは、以下のように左端の引数や途中の引数だけを省略可能にすることもできます。
def func2(a=1, b, c) p [a, b, c] end func2(2, 3) #=> [1, 2, 3] def func3(a, b=1, c) p [a, b, c] end func3(2, 3) #=> [2, 1, 3]