トップ 最新 追記   RSS 1.0 FEED  

Journal InTime


2009-08-31 (Mon) [長年日記]

_ Enumerator#feed

Enumerator#feedが導入されて、

a = [1,2,3]
e = a.collect!
loop do
  e.feed(e.next.to_s)
end
p a #=> ["1", "2", "3"]

と書けるようになったが、

a = [1,2,3]
e = a.collect!
loop do
  e.current = e.current.to_s
  e.next
end
p a

と書けた方が外部イテレータっぽいんじゃないかと思ったりした。

実装は、以下の通り。

class Enumerator
  alias current peek
  alias current= feed 
end

ただ、peekとfeedは本来対称的なものでないので筋が悪い気がする。 collect!だといいけど、delete_ifだと変だ(と思ったのでMLでなく日記に書くことにした)。

a = [1,2,3]
e = a.delete_if
loop do
  e.current = e.current % 2 == 0
  e.next
end
p a
Tags: Ruby

_ PortaProのイヤーパッド

ひさびさにKOSSのPortaProを引っぱり出してみたら、触った瞬間にイヤーパッドが崩れさったので、以下のサイトを見てSONYのEP-G1で代用した。

<URL:http://plaza.rakuten.co.jp/uoo1990/diary/200611260000/>

とくに違和感ない感じ。

7年間使っているBREEの鞄も修理から戻って来たけど、物を長く使うのって大事ですよね。 とか言いつつ、物欲に負けて携帯用の箸を買ってしまったばかりだけど(弁当食べるのに使ってるだけだから、ぜんぜんエコではない)。