[#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:38730] Re: 多重配列のコンストラクタ ← 多重配列

From: Take_tk <ggb03124@...>
Date: 2003-11-02 13:07:03 UTC
List: ruby-list #38730
たけ(tk)です。

[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

take_tk = kumagai hidetake

In This Thread