うえむら@文京区と申します。 プログラミングを始めるなら、やっぱり Ruby っしょ!ということで、 さわり始めてから、幾星霜。。。やっと「作りたい」と思うネタが出来たので、 頑張っているところなのですが、Matrix のサブクラスを定義しようとして、 はまっております。 ウェブ上の Ruby リファレンスマニュアルの Matrix の項を何度も読んだのですが、 どうしてもエラーの原因が判らず、恐る恐るメールしてみました。最初の二つの方 法でのインスタンス生成は成功しているのに、3つ目の方法だと引数の数が違う旨 を言われてエラーになります。 ruby/1.8/{e2mmap,matrix}.rb の該当箇所を読んでみたのですが、サッパリでして。 この辺りを確認してみたら?といったポインタを頂ければ、幸いです。 宜しくお願い致します。 #"ruby -w" を受け取ってくれる env と "No such file" と弾いちゃう env #があるけれど、違いは何なのだろう。。。 > ruby --version ruby 1.8.1 (2003-12-25) [x86_64-linux-gnu] > cat my_matrix.rb #! /bin/env ruby #! /bin/env ruby #-w require 'matrix' class MyMatrix < Matrix attr_accessor :fixed def initialize super @fixed = false end end mtrx = MyMatrix.zero(3) p mtrx mtrx = Matrix[[11, 12], [21, 22]] p mtrx rows = [[1, 0], [0, 1]] mtrx = MyMatrix.rows(rows, copy = true) p mtrx > ./my_matrix.rb Matrix[[0, 0, 0], [0, 0, 0], [0, 0, 0]] Matrix[[11, 12], [21, 22]] /usr/lib64/ruby/1.8/e2mmap.rb:70:in `initialize': wrong number of arguments(3 for 0) (ArgumentError) from /usr/lib64/ruby/1.8/e2mmap.rb:70:in `new' from /usr/lib64/ruby/1.8/e2mmap.rb:70:in `new' from /usr/lib64/ruby/1.8/matrix.rb:217:in `rows' from ./my_matrix.rb:19