5 ms·
That can be made even simpler in C#: var blah = () => "im a function";
by grokys 12y ago
That can be made even simpler in C#:
var blah = () => "im a function";
- kozhevnikov 12y agoIs that a new C# 6 feature? Cause in C# 5 delegates can't be implicitly typed. Func<string> blah = () => "im a function"; var blah = new Func<string>(() => "im a function");
- Gurkenmaster 12y agoActually C#6 looks more like this: string blah() => "im a function"; Ceylon: String blah() => "im a function"; Coincidence? Just kidding.
- jacabado 12y agoYou just can't do it implicitl because the compiler can't distinguish Func<string> from Expr<Func<string>>. But you can have a generic extension method that returns one of the types and then via inference you can do it implicitly typed. It shoud be something like this in C# 5: public static class Lamb { public static Func<T> da(this Func<T> f) { return f; } } and then: var egocentricFn = Lamb.da(() => "im a function"); I find it really useful not for Func's but for Expressions, as the type declarations can get pretty long.
- rjbwork 12y agoI actually had that up there at first, but remembered you can't implicitly type lambdas yet.
- antihero 12y agoIn ECMAScript 6: var blah = () => "im a function"; http://is.gd/D42hDi http://is.gd/D42hDi :)
- deleted 12y ago[deleted]
- dguaraglia 12y agoWow. I love it when good syntax sugar is inherited by languages.
- antihero 12y agoYep, I've popped 6to5 in our gulp build process (it also handles JSX which is bleedin' fantastic), and my team and I are absolutely loving it. The fact that, for instance, you can use ES6 modules, and it will be converted to whichever module loading system you're actually using (AMD or Browserify, for instance), means that our code is actually more portable now (our React/Flux/browseify app may well have to be integrated into a project that uses backbone/AMD soon, so that's no longer a headache.