Yep, one day Haskell and LISP will rule the world. Until then we'll just have to live with C# and its new closure-imitating syntax.
One of my design goals with the managed Scheme compiler is to enable easy interoperability with existing managed languages through delegate-based entrypoints. This communication needs to flow both ways, so that for example a lambda can substitute for a delegate and vice versa. My backend actually has its own representation for functions, enabling fine-grained control over scoping and such, but mutliple entrypoints are provided for this explicit purpose.
So for example,
delegate object Transform(object o);
void Map(Transform a, Array arr)
{
//...
}
Can be called from a Schema program as follows,
((func-lkup "Map(Transform, Array)")
(lambda (x)
(* x 2))
(10 15 20 25))
...and the other way around.