InfoQ

InfoQ

新闻

我的书签

登录注册 以永久保存书签。

该内容已经被标记书签!

标记书签错误,请重试!

Lambda开发群组意见收集:​“Strawman”语法临时方案

作者 Alex Blewitt 译者 贾国清 发布于 2011年6月13日

领域
语言 & 开发
主题
Java ,
语言 ,
编程 ,
闭包(Closures)

Lambda开发邮件列表中,Lambda语法引发了新一轮的讨论,与以往不同的是,这次以收集意见为主。​

​“Strawman”语法提供了一套临时性的方案,意在讨论该语法的可行性以及一些细节差异,这些细节包括Lambda表达式与类型推断如何在Java下工作等,同时该方案不会作为永久性的语法解决方案。目前,被推荐的4种语法形式如下所示:

  • Strawman​型: #(arglist)(expr) and #(arglist){statements}
  • BGGA​型: { args -> statements }
  • SotL​型: #{ args -> statements}
  • Redmond​型: (args) -> { statements }

该调查还分别附带了相应的代码片段:

Example of Strawman:
list.filter( #(Foo t)(t.length() > 3) )
       .map( #(Foo t)(t.barCount) )
       .max();

Example of BGGA:
   list.filter( { Foo t -> t.length() > 3 } )
       .map( { Foo t -> t.barCount } )
       .max();

Example of SotL:
   list.filter(#{ Foo t -> t.length() > 3 } )
       .map(#{ Foo t -> t.barCount } )
       .max();

Example of Redmond:
   list.filter((Foo t) -> { t.length() > 3 } )
       .map((Foo t) -> { t.barCount } )  ​       .max();

关于提案的更多细节可参看Lambda开发邮件列表中的原文,从中还可了解到如何反馈调查结果等信息。

查看英文原文:Lambda Syntax Survey

译者 贾国清 是InfoQ中文站高级策划编辑,热爱生活,喜欢旅游和体育运动。

Java是自暴自弃了还是怎么的,非要那么多语法噪音才满意? 发表人 Zhao Jeffrey 发表于
Re: Java是自暴自弃了还是怎么的,非要那么多语法噪音才满意? 发表人 liu cy 发表于
Re: Java是自暴自弃了还是怎么的,非要那么多语法噪音才满意? 发表人 黄 海旭 发表于
  1. 返回顶部

    Java是自暴自弃了还是怎么的,非要那么多语法噪音才满意?

    发表人 Zhao Jeffrey

    像C#这样不是很好么?

    list.filter(t => t.length() > 3)
    .map(t => t.barCount);
    .max()


    类型可以推断出来,也无需大括号之类的,多干净。

  2. 返回顶部

    Re: Java是自暴自弃了还是怎么的,非要那么多语法噪音才满意?

    发表人 liu cy

    咱也赞成C#这种比较简洁的语法

  3. 返回顶部

    Re: Java是自暴自弃了还是怎么的,非要那么多语法噪音才满意?

    发表人 黄 海旭

    或者像Scala那样:

    list.filter(_.length > 3)
    .map(_.barCount)
    .max

    甚至更简单的写法:

    list.filter(length > 3)
    .map(barCount)
    .max

    没有确认过,大概是这个意思。