«前の日記(2007年06月26日) 最新 次の日記(2007年06月28日)» 編集

Matzにっき


2007年06月27日 [長年日記]

_ [Ruby] On The Horizon : Ten Things I like about Ruby 1.9 - O'Reilly Ruby

Gregory BrownがRuby 1.9の新機能で好きなこと10選。

  1. Enumerator is in core and more tightly integrated

    a = 4.times
    a = a.each
    a.inject{|s,x| s+x}         # => 6
  2. Enumerator#with_index

    [1,2,3,4,5,6].map.with_index {|x,i|[2,5].include?(i) ? x : x*2}	#=> [2, 4, 3, 8, 10, 6]
  3. Better Array#to_s and Hash#to_s

    [1,2,3,4].to_s  # => "[1, 2, 3, 4]"
    {1,2,3,4}.to_s  # => "{1=>2, 3=>4}"
  4. Method#receiver and Method#owner

    class A; def foo; end end
    a = A.new
    a.method(:foo).receiver      # => #<A:0xa7c9f6d8>
    
    class A; def foo; end end
    a = A.new
    a.method(:foo).owner         # => A
  5. Process.daemon

    Process.daemon()                        => fixnum
    Process.daemon(nochdir=nil,noclose=nil) => fixnum
  6. Blocks can take block argument

    define_method(:foo){|&b| b.call(bar)}
  7. Block arguments are always local

    a = 1
    10.times{|a| } # !> shadowing outer local variable - a
    a  # => 1
  8. New literal Hash syntax

    { a: 1, b: 2 }
    foo(a: 1, b: 2)
  9. Class variables not inherited
  10. BasicObject

    BasicObject.instance_methods
    # => ["__send__", "funcall", "__id__", "==", "send", "respond_to?", "equal?", "object_id"]
    Object.ancestors       # => [Object, Kernel, BasicObject]

ちなみにGregoryが嫌いなことは

a = ->(b,c){ b + c }

だそうだ。これ不評だよねえ。でも、なんでだろう?

_ もっと失敗しよう:江島健太郎 / Kenn's Clairvoyance - CNET Japan

私もしばしば経験があるんだけど、 頭の中ではなにもかもうまくいって、「成功間違いなし」とか思っちゃうんだけど、 いざ実践してみると、逆になにもかもがうまくいかないように思えるなんてのは 日常茶飯事だよね。

私の息子は折紙が大好きなんだけど、 折り図を見るとかっこいい作品がイメージできてわくわくしながら 取り掛かるものの、いざ折り始めるとぜんぜんうまくいかなくて がっかりしてしまう(彼はちょっと挫折癖がある)のをしばしば見かける。

ま、親子だから分野は違えど似たような反応をしてしまうわけだな。

しかし、私の方はそのような失敗の経験をはるかに積んでいるために まだ若い息子よりも立ち直りが早いし、そもそも失敗を予測して手当てをすることができるように なっている。

江島さんがリンク先のエントリで書いてることって、 結局はそういうことだよね。やりもしないで「やりさえすれば成功間違いなし」とか 「自分は天才だ」とか思いこんじゃう、ちょっと(だいぶ?)アレな人と 根っこは同じだ。

いや、程度の差こそあれ、人間、誰でもみんなアレなんだよ。 要はそこで(何度も失敗しても、それでもの)一歩踏み出すかどうかが、 違いを生むんじゃないかなあ。

ちなみにRubyは私の最初の言語ではない。


«前の日記(2007年06月26日) 最新 次の日記(2007年06月28日)» 編集