2002-11-07 [長年日記]
λ. 過去の自分はいつだって愚かなものだ。
λ. 雨がポツポツと。今日は雨は降らないかと思ったのに……
λ. この寒空は今の僕の気分か……
λ. ミクロ経済Ⅱ
レポート提出。
まぁ、どうでも良いのだけど「労働者が1時間あたりに生産できるTシャツの枚数を、労働時間の長さごとに求めよ」という文を見たら、普通「限界生産性」ではなくて「平均生産性」の事だと思いますよーー
λ. 沈没
沈没中...
λ. Lexical File Names in Plan 9, or, Getting Dot-Dot Right
UNIX Magazine 2001年5月号に載っていた日本語訳「Plan 9 における字句的なファイル名 — ".."の正しい把握」を読んだ。
λ. 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にもあるんですね。
Schemeにもあります>zip。srfi-1ですが。Schemeのは一番短いリストに合わせてますな。
Schemeにもあるのですか。<br>——と思ったら、割と色々な言語にあるのですね。<br><br>Haskell, Scheme, Python, SML/NJ: 一番短いのに合わせる<br>Perl6, Ruby(?): 一番長いのに合わせる<br>merd, OCaml(List.combine): 長さが異なったら例外/エラー