Hacker News new | comments | ask | show | jobs | submit login

That can be made even simpler in C#:

var blah = () => "im a function";

In ECMAScript 6:

    var blah = () => "im a function";


Wow. I love it when good syntax sugar is inherited by languages.

Yep, 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.

Is 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");

You 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.

Actually C#6 looks more like this:

string blah() => "im a function";


String blah() => "im a function";

Coincidence? Just kidding.

I actually had that up there at first, but remembered you can't implicitly type lambdas yet.

Applications are open for YC Summer 2019

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact