[#44237] Float を利用するRubyプログラム — SASADA Koichi <ko1@...>

 ささだです.

16 messages 2007/11/17
[#44241] Re: Float を利用するRubyプログラム — SASADA Koichi <ko1@...> 2007/11/19

 ささだです.

[ruby-list:44226] Re: スマートな記述ありますか?

From: Nobuyoshi Nakada <nobu@...>
Date: 2007-11-15 10:11:03 UTC
List: ruby-list #44226
なかだです。

At Thu, 15 Nov 2007 15:44:02 +0900,
Ohto, Yasunori wrote in [ruby-list:44223]:
> # 1
> a=10
> lambda{
>   a=20; puts a
> }.call
> puts a

これでは a=20 のままのはずです。ひょっとして最初の a=10 と
lambda の順序が逆でしょうか。

ともあれ、別のローカルな変数に同じ名前をつけることは、1.8ではで
きません。

> # 2
> def hoge(a)
>   puts a
> end
> 
> def fuga(a)
>   a.call(10)
> end
> 
> fuga( lambda{|a| hoge(a)} )

fuga(method(:hoge)) とMethodオブジェクトを渡すこともできますが、
Rubyではふつうブロックを使うところじゃないですかね。

  def fuga(&a)
    a.call(10)
  end

または

  def fuga
    yield 10
  end

として

fuga {|a| hoge(a)} とか
fuga(&method(:hoge)) とか

-- 
--- 僕の前にBugはない。
--- 僕の後ろにBugはできる。
    中田 伸悦

In This Thread

Prev Next