Smalltalk の #timesRepeat: を Ruby の #times っぽく使う
Rubyの times って引数とれるんですね。初めて知りました。いいなぁRuby。Smalltalk の #timesRepeat: は引数なしなので、Rubyのもてっきりそうだと思い込んでました(^^;
みねこあ - ツンデレC#2.0 の yield 入門 - コメント欄
えーっ。Smalltalk でも引数、とれますよ。
World findATranscript: nil. 5 timesRepeat: [:i | Transcript cr; show: i]
=> 1 2 3 4 5
……、嘘です。 ごめんなさい。ごめんなさい。ごめんなさいっ。w
Integer >> timesRepeat: aBlock | count | count := 1. [count <= self] whileTrue: [ aBlock numArgs isZero ifTrue: [aBlock value] ifFalse: [aBlock value: count]. count := count + 1]
おまけ。
World findATranscript: nil. 5 timesRepeat: [Transcript cr; show: (thisContext sender tempAt: 2)]