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
_ PortaProのイヤーパッド
ひさびさにKOSSのPortaProを引っぱり出してみたら、触った瞬間にイヤーパッドが崩れさったので、以下のサイトを見てSONYのEP-G1で代用した。
<URL:http://plaza.rakuten.co.jp/uoo1990/diary/200611260000/>
とくに違和感ない感じ。
7年間使っているBREEの鞄も修理から戻って来たけど、物を長く使うのって大事ですよね。 とか言いつつ、物欲に負けて携帯用の箸を買ってしまったばかりだけど(弁当食べるのに使ってるだけだから、ぜんぜんエコではない)。