突然ですが、VB.NETで書くラムダについての熱い議論のページ(笑)
VBだとこうなったんだけど、ラムダってどんな書き方がかっちょええんやろ?で、本人は3パターン出したわけですが……
http://www.panopticoncentral.net/archive/2006/12/08/18587.aspx
こーしたほーが、いやこれもあるでよ、俺はRuby好きだしこれがいーなー、ちょいまてそもそもVB6だったときにはなぁー、と交わされる交わされるコメント群。言葉も国も変われど、わんくま的ノリってどこにでもあるのねー(笑) 結局のところ、ラムダってのは一つの処理をさせるのに十人十色な表現方法があって「祭り」にぴったりのものっぽい気がした。<おい
閑話休題。
私の目的はVB.NETでLambdaを書けるようにならないとな、と情報を集めていただけなんだけれど、やっぱりこれが一番判りやすいサンプルコードだと思ったデスよ。
Public Class Class1
Delegate Function TransformDelegate(ByVal input As Integer) As Integer
Sub ApplyTransform(ByVal array() As Integer, ByVal transform As TransformDelegate)
For i As Integer = 0 To array.Length - 1
array(i) = transform(array(i))
Next
End Sub
Sub Main()
Dim a() As Integer = {1, 2, 3}
ApplyTransform(a, Function(x) x + 1)
End Sub
End Class
えっと、配列を渡すとその中身に1ずつ足した配列に変わってくれる処理ってやつがVBのラムダで書かれてますです。
これを見ていて思ったのだけれど、LINQとLambdaってのは切っても切れないというか、とっても似たもの同士というか兄弟というかお互いがあってお互いがあるみたいな、そんな感じだったんですね。LINQで何ができるのかという部分がぼんやりと判ってきたところなんだけど、実はそれは、さりげにLambdaに手を染め始めていたってことであり、今回のVisualBasic9.0を触っていく上で避けて通れないんだなぁ、と。
え、今更そんなこと言ってるのか?って、だって、胡桃の脳みそなんだもん、、、
これからモンブランがおいしいよね(違っ)