鍋あり谷あり

テーマを決めずに適当に書いています。

多重代入でひとつめを捨てる

def divmod(a,b)
	[a/b,a%b]
end

みたいな関数があって。
この例で言う、a/b が不要で a%b だけが要るとしよう。
まあ多重代入じゃなくて配列が返ってると思えば

r=divmod(10,3)[1]

なんだけど、

def foo(a,b)
	yield[a/b,a%b]
end

だと配列と思うのも難しく。とはいえ

foo(2,3){ |dummy,r| p r }

と書くのもいやだし。かといって

foo(10,3){ |,r| p r }
foo(10,3){ |(),r| p r }

はエラーだし。
と。
思っていたら。

foo(10,3){ |(*),r| p r }
(*),r=divmod(10,3)

こんな書き方でひとつめを捨てられるということを発見した。
知らなかった。

いやそんだけ。