[#38724] 祝日判定用メソッド — Take_tk <ggb03124@...>

たけ(tk)です

19 messages 2003/11/02

[#38756] ruby-dev summary 21730-21822 /draft — Minero Aoki <aamine@...>

青木です。

14 messages 2003/11/05

[ruby-list:38733] Re: 多重配列のコンストラクタ ← 多重配列

From: 小西 弘将 <konishih@...6.so-net.ne.jp>
Date: 2003-11-02 14:18:52 UTC
List: ruby-list #38733
 小西 弘将です。

>[ruby-list:38723] 多重配列のコンストラクタ ← 多重配列 にて 
>Take_tk <ggb03124@nifty.ne.jp> さん 曰く:
>> 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
>
>順番が逆でした。↑のままだとデフォルトもブロックもない場合にエラーになっ
>てしまう。
>
>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,d) unless block
>  return Array.new(n){|x| block.call(*(args+[x]))} unless d
>  raise(ArgumentError,"block with default")
>end
>end
>
なるほど、参考になりました。
Arrayが標準で多次元配列の生成をサポートするとなお便利ですね。

#〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
# 小西 弘将 ( KONISHI Hiromasa )
# konishih@fd6.so-net.ne.jp
#〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜


In This Thread

Prev Next