kiyoka.2008_02_25 RSSPLAIN

Related pages: !kiyoka.blog.list kiyoka.2008_03_04 !kiyoka.blog.2008_03 !kiyoka.blog.2008_02
5455555544433333344444444444444
5

[Ruby][プログラミング] Schemerにとって理想のRubyとは(1)

4
Schemerはこんなコードを書きたいと思うはず。defとlambdaは同じであるべきだ。
5

 

5
def func1( x )
5
  x + 1
5
end
5
p [1,2,3].map( func1 )
5

 

4
なんでdefは内部でlambdaに置換されないんだろうか。えっ?class/moduleとの整合?私はそんなの知らない。
4

ところで、Ruby1.8.6ではクロージャをmapに渡すためにはこう書くしかない。

4

 

3
func1 = lambda {|x|
3
  x + 1
3
}
3
p [1,2,3].map {|x|
3
  func1.call(x) 
3
}
4

 

4
せめてこれくらい書ければいいなぁ。
4

 

4
func1 = lambda {|x|
4
  x + 1
4
}
4
p [1,2,3].map( func1 )
4
 
4
でもエラーとな...残念だ。
4
bash-3.2$ ruby ./t.rb
4
./t.rb:5:in `map': wrong number of arguments (1 for 0) (ArgumentError)
4
        from ./t.rb:5
4

 

4

私が知らないだけで本当はもっと簡潔に書く方法があるのかな?