タグ

人とlambdaに関するyuguiのブックマーク (1)

  • String#succ - (new Hatena).blog()

    g:subtech:id:secondlife:20060530:1148996760 経由で p (1..n).inject(s) {|x,| x.succ}という表現を見てちょっと衝撃を受けました。 "n" は数値、"s" は文字列で、n 回分文字列を succ する (C 言語系の "++" みたいなもの) 方法を表したものです。 例えば n が 10 で s が "a" ならば "k" がプリントされるわけです。 この表現が生まれた経緯については上のリンク先を見ていただくとして、私個人的に驚いたのは、「オブジェクトに対してメソッドを繰り返し適用する」ことと、「その結果を得る」ことを、「範囲#inject」の一文だけで済ませている、という点です。 つまり、(私のように) まだあまり inject に慣れていない思考回路の人ならこうしていたと思うんですね (in JavaScript)

    String#succ - (new Hatena).blog()
  • 1