トップ «前の日記(2002-11-06) 最新 次の日記(2002-11-08)» 月表示 編集

日々の流転


2002-11-07 [長年日記]

λ. 過去の自分はいつだって愚かなものだ。

λ. 雨がポツポツと。今日は雨は降らないかと思ったのに……

λ. この寒空は今の僕の気分か……

λ. ミクロ経済Ⅱ

レポート提出。

まぁ、どうでも良いのだけど「労働者が1時間あたりに生産できるTシャツの枚数を、労働時間の長さごとに求めよ」という文を見たら、普通「限界生産性」ではなくて「平均生産性」の事だと思いますよーー

λ. 沈没

沈没中...

λ. Lexical File Names in Plan 9, or, Getting Dot-Dot Right

UNIX Magazine 2001年5月号に載っていた日本語訳「Plan 9 における字句的なファイル名 — ".."の正しい把握」を読んだ。

Tags: 論文

λ. Re: 比重

なるほど。やっぱりコンクリートは人間の2倍以上重いのですね。そういわれてみれば、確かに森博嗣の小説で読んだ事があるような気もします。……『詩的私的ジャック』だったかな。

λ. Enumerable#with_index

Enumerable#each_with_indexって使える場面が極端に限られている気がする。例えばインデックスに依存するような関数でmapしたい時なんかには使うことが出来ないし。いっそのこと、こんな感じなら扱いやすかったのに。

module Enumerable
  class WithIndex
    include Enumerable
 
    def initialize(orig, from = 0)
      @orig = orig
      @from = from
    end
 
    def each
      index = @from
      @orig.each{|item|
        yield(item, index)
        index = index.succ
      }
    end
  end
 
  def with_index(*args)
    WithIndex.new(self, *args)
  end
end
 
data = [11,18,24,30,35,39,43]
data.with_index(1).map{|item,index| item.to_f / index }
#=> [11.0, 9.0, 8.0, 7.5, 7.0, 6.5, 6.142857143]

あ、わざわざこんなのを作らなくても、generator.rbのSyncEnumeratorでこないだのFromと同期させてやれば良いか。

……とか書いていたら、[ruby-dev:18651]でzipの話が出ているのに気が付いて驚いた。zipってHaskellのしか知らなかったけどPythonやPerl6にもあるんですね。

Tags: ruby
本日のツッコミ(全2件) [ツッコミを入れる]
ψ Shiro (2002-11-08 05:43)

Schemeにもあります>zip。srfi-1ですが。Schemeのは一番短いリストに合わせてますな。

ψ さかい (2002-11-09 04:49)

Schemeにもあるのですか。<br>——と思ったら、割と色々な言語にあるのですね。<br><br>Haskell, Scheme, Python, SML/NJ: 一番短いのに合わせる<br>Perl6, Ruby(?): 一番長いのに合わせる<br>merd, OCaml(List.combine): 長さが異なったら例外/エラー