[#38716] 多重配列 — Teppei <te-uno@...>
宇野といいます。はじめまして。
10 messages
2003/11/01
[#38717] Re: 多重配列
— Take_tk <ggb03124@...>
2003/11/01
たけ(tk)です。
[#38724] 祝日判定用メソッド — Take_tk <ggb03124@...>
たけ(tk)です
19 messages
2003/11/02
[#38725] Re: 祝日判定用メソッド
— Beyond <beyond@...>
2003/11/02
[#38727] Re: 祝日判定用メソッド
— Tadayoshi Funaba <tadf@...5.so-net.ne.jp>
2003/11/02
ちょっと見ただけですけど、気になるところがありますね。
[#38729] Re: 祝日判定用メソッド
— Take_tk <ggb03124@...>
2003/11/02
たけ(tk)です。
[#38731] 割り算で答えの整数部分だけを取り出す方法 — "S.Nobuhiro" <s-nob@...>
Nobuhiroと申します。
5 messages
2003/11/02
[#38747] [1.8.1p2] ''リテラルの行末エスケープ — "Shirai,Kaoru" <shirai@...>
白井です。
5 messages
2003/11/03
[#38756] ruby-dev summary 21730-21822 /draft — Minero Aoki <aamine@...>
青木です。
14 messages
2003/11/05
[#38781] convert EBCDIC to SJIS — "T.Fukagawa" <tfukaga@...01.gate01.com>
深川です。
8 messages
2003/11/10
[#38787] sjis正規表現エラー@二重打ちチェック — Naohiko Barada <naob@...>
初めてレポートします。 茨田と申します。よろしくお願いいたします。
5 messages
2003/11/11
[#38796] net/http set_debug_output — "NAKAMURA, Hiroshi" <nakahiro@...>
なひです。
7 messages
2003/11/15
[#38810] バックトレースの表示指定 — "U.Nakamura" <usa@...>
こんにちは、なかむら(う)です。
5 messages
2003/11/19
[#38814] new with module — "NAKAMURA, Hiroshi" <nakahiro@...>
なひです。
10 messages
2003/11/20
[ruby-list:38723] 多重配列のコンストラクタ ← 多重配列
From:
Take_tk <ggb03124@...>
Date:
2003-11-02 04:40:20 UTC
List:
ruby-list #38723
たけ(tk)です。
[ruby-list:38722] Re: 多重配列 にて
小西 弘将 <konishih@fd6.so-net.ne.jp> さん 曰く:
> >岩月と申します。
> >irb(main):001:0> a = Array.new(3) { Array.new(3, 0) }
> なるほど、構築時のディープコピーに今ひとつしっくりした方法を思いつかず、
> ちょっと不満を抱いていたところでした。
ちょっと工夫して、オブジェクトの共有にならない多重配列用のコンストラクタ
を作ってみました。ディープコピーもできるようです。
----
#! ruby -Ks
#-- Array_new2.rb
#-- Array_new2.pi
#-- オブジェクトの共有にならない多重配列のコンストラクタ
#-- [ruby-list:38720]
class Array
def self.new2(arr,d=nil,args=[],&block)
arr = arr.dup
n = arr.shift
return Array.new(n){|x| self.new2(arr,d,args+[x],&block) } unless arr.empty?
return Array.new(n){|x| block.call(*(args+[x]))} unless d
return Array.new(n,d) unless block
raise(ArgumentError,"block with default")
end
end
if __FILE__ == $0
#-- create n dimension array with block
p Array.new2([9,9]){|x,y| (x+1)*(y+1) }
p Array.new2([2,2,2]){|x,y,z| (x+1)*(y+2)*(z+3) }
#-- create n dimension array with default
p Array.new2([2,2,2],2)
#-- deep copy
a = Array.new2([2,2,2]){|x,y,z| (x+1)*(y+2)*(z+3) }
b = Array.new2([2,2,2]){|x,y,z| a[x][y][z] }
p a,b
end
----
take_tk = kumagai hidetake