[#47133] [ANN] ulmul-0.4.1 is released with ulmul2html5 and ulmul2xhtml — Takeshi NISHIMATSU <t_nissie@...>
西松と申します。
4 messages
2010/06/06
[#47158] [ANN] RubyKaigi 2010: PGP Keysigning Party — Urabe Shyouhei <shyouhei@...>
=1B$B$_$J$5$s$3$s$K$A$o!#=1B(B
5 messages
2010/06/15
[#47173] 小数点以下を切り捨てる方法について — "T.Soejima" <clev@...2.so-net.ne.jp>
お世話になっております。そえじま@勉強中です。
16 messages
2010/06/23
[#47174] Re: 小数点以下を切り捨てる方法について
— "NARUSE, Yui" <naruse@...>
2010/06/23
成瀬です。
[#47180] Re: 小数点以下を切り捨てる方法について
— "T.Soejima" <clev@...2.so-net.ne.jp>
2010/06/24
そえじま@勉強中です。
[#47182] Re: 小数点以下を切り捨てる方法について
— "KISHIMOTO, Makoto" <ksmakoto@...4u.or.jp>
2010/06/24
kなんとか、じゃない、きしもとです
[#47199] [ANN] RubyKaigi2010のライトニングトークスの応募フォームをオープンしました — SHIMADA Koji <snoozer.05@...>
日本Ruby会議2010実行委員のしまだです。
5 messages
2010/06/30
[ruby-list:47120] Re: 配列の配列を返すmap
From:
Nobuhiro IMAI <nov@...>
Date:
2010-06-01 11:28:35 UTC
List:
ruby-list #47120
いまいです。
From: arima <arima.tknr_at_nifty.com>
Date: Tue, 1 Jun 2010 19:48:12 +0900
> 配列の配列を返すmapで、理解できない現象に困っています。
>
> 整数の配列から、隣り合う要素のペアの配列を返すという、簡単なscriptです。
>
> aA=[10, 20, 30, 40, 50]
> aX=[0, 0]
>
> aY=aA.map{|x|
> aX.push(x).shift
Array#push も Array#shift も配列を破壊的に変更するので、aX を破壊的に変
更しながら、最終的に aX が [40, 50] になったところで aY に入るので、
> [[[40, 50], 0, 10], [[40, 50], 10, 20], [[40, 50], 20, 30], [[40, 50], 30, 40], [[40, 50], 40, 50]]
こんなことになります。
> [aX, aX[0], aX[1]]の中のaXは、すべて[40, 50]を返します。
2〜3番目の要素はその時点の aX の各要素を指しているのに対して、1番目の要
素は aX そのものを指しているということですね。
aX.object_id # => 68879620
aY.map(&:first).map(&:object_id) # => [68879620, 68879620, 68879620, 68879620, 68879620]
68879620 という値は実行した環境によって違いますが、すべて同じオブジェ
クトを指しているということが確認できると思います。
最後に、たぶん、お望みのものは以下で実現できると思います。
aA.each_cons(2).to_a # => [[10, 20], [20, 30], [30, 40], [40, 50]]
--
Nobuhiro IMAI <nov@yo.rim.or.jp>
Key fingerprint = F39E D552 545D 7C64 D690 F644 5A15 746C BD8E 7106