当前位置: 首页 > news >正文

东莞手机网站制作公司辣条网站建设书

东莞手机网站制作公司,辣条网站建设书,网站icp做年检,网站建设教程哪个好lambda语法关于lambda-dev邮件列表的讨论已经开始解决lambdas /函数文字的Java语言语法应该是什么样的问题。 让我们看一个稍微平凡的例子#xff0c;然后尝试弄清楚问题。 Perl的人有一个很好的例子#xff0c;说明以某种功能性的方式使用函数引用–他们称其为Schwartzian变… lambda语法 关于lambda-dev邮件列表的讨论已经开始解决lambdas /函数文字的Java语言语法应该是什么样的问题。 让我们看一个稍微平凡的例子然后尝试弄清楚问题。 Perl的人有一个很好的例子说明以某种功能性的方式使用函数引用–他们称其为Schwartzian变换但我相信它最初是Lisp的trick俩有时也称为decorate-sort-undecorate。 因为这里只有我们JVM鸡所以我在Clojure中重写了它实际上这是本书第9章中的示例之一。 这是Clojure代码的片段其中定义了执行Schwartzian转换的函数。 基本上它提供了一种非常简单的方法可基于调用者提供的辅助功能称为“键控功能”对列表进行排序。 (defn schwarz [x f](map #(nth %1 0)(sort-by #(nth %1 1)(map #(let [w %1](list w (f w)) ) x)))) 该代码执行三个单独的步骤-创建一个由对组成的列表原始值与通过将键控函数应用于原始值而获得的值配对然后根据键控函数的值对对进行排序。 最后通过仅从排序对对列表中的每对中获取原始值并丢弃键控函数值来构建新列表。 在各种提议的Java语法变体中这看起来像什么 让我们快速看一下每一个请注意由于Java的类型系统更加静态所以我们的许多类型声明都有些冗长 // Strawman, with round brackets for single-expression lambdas public ListT schwarz(ListT x, FunctionT, PairT,V extends ComparableT f) { return map(#(T w)(makelist(w, f.apply(w))), x).sort(#(PairT, V extends ComparableT l)(l.get(1))).map(#(PairT, V extends ComparableT l)(l.get(0))); }// Strawman, with braces for all lambdas public ListT schwarz(ListT x, FunctionT, PairT,V extends ComparableT f) { return map(#(T w){makelist(w, f.apply(w))}, x).sort(#(PairT, V extends ComparableT l){l.get(1)}).map(#(PairT, V extends ComparableT l){l.get(0)}); }// BGGA public ListT schwarz(ListT x, FunctionT, PairT,V f) { return map({T w - makelist(w, f.apply(w))}, x).sort({PairT, V extends ComparableT l - l.get(1)}).map({PairT, V extends ComparableT l - l.get(0)}); }// SotL public ListT schwarz(ListT x, FunctionT, PairT,V f) { return map(#{T w - makelist(w, f.apply(w))}, x).sort(#{PairT, V extends ComparableT l - l.get(1)}).map(#{PairT, V extends ComparableT l - l.get(0)}); }// Redmond public ListT schwarz(ListT x, FunctionT, PairT,V extends ComparableT f) { return map((T w) - {makelist(w, f.apply(w))}, x).sort((PairT,V extends ComparableT l) - {l.get(1)}).map((PairT, V extends ComparableT l) - {l.get(0)}); } 如何评估它们 我的标准是 需要以一个可见的识别标记开始以便lambda可以从周围的代码中脱颖而出。 是一个方便的字符。 需要使用{}分隔语法。 闭包是一种块因此它们在代码中应类似于块。 需要全部集成在一起因此语法具有视觉一致性并且lambda显示为单个单元。 优选地需要具有不带参数的函数文字的专用缩写形式空lambda。 基于这些标准对我来说雷德蒙德是最糟糕的选择-并且我为本书编写Scala的经验证明了这一点-我发现Scala的函数字面量比其他语言更难使用而没有问题。 BGGA稍好一些但是我不喜欢缺少一个简单的识别标记来告诉我“你好 我是lambda”。 这使它始终可以在SotL和Strawman之间进行选择。 这两个的选择有些随意。 在我看来Strawman-always-brace看起来像是一个真正的Java方法声明但是带有“魔术名称”-而SotL是真正的新语法但感觉更接近Redmond和BGGA样式-因此这可能是一个可以接受的折衷方案对于熟悉这些表格的开发人员。 综合考虑我的首选是 SotLhttp//www.blogger.com/img/blank.gif 稻草人总是大括号 BGGA 斯特劳曼单表达轮 雷德蒙德 请使用注释在下面或在原始来源处 告诉我们您对这个问题的看法。 当然这不会在Java 7中出现-但是现在开始考虑Java 8和未来还为时过早。 参考 Java 7开发人员博客上的 JCG合作伙伴提供的Lambda语法替代方案 。 相关文章 适用于Mac OS X的官方Java 7 –状态 概览Java 7 MethodHandle及其用法 了解和扩展Java ClassLoader Java内存模型-快速概述和注意事项 翻译自: https://www.javacodegeeks.com/2011/06/java-lambda-syntax-alternatives.htmllambda语法
http://www.zqtcl.cn/news/694831/

相关文章:

  • 网站需要怎么做做普通网站公司吗
  • 网站收录平台方法网站建设是不是都需要交费
  • 上海 政务网站建设情况营销模式有哪些 新型
  • 国内做免费视频网站有哪些苏州娱乐场所最新消息
  • 福田建设网站宿迁网站建设案例
  • 建立企业网站的目的和意义人力资源外包收费标准
  • 网站开发前后端分离湘潭seo磐石网络
  • 上海做网站找谁京东网站建设分析
  • 叶榭做网站青岛做网站建设价格
  • 有什么可以在线做奥数题的网站中国建设网官网下载
  • 网站加载特效代码网站建设5000费用
  • 网站切图谁来完成wordpress 谷歌登陆
  • 租房网站建设网站怎么黑
  • 文成做网站搜索引擎优化工具深圳
  • 网站源码下载平台小程序云开发费用
  • 网站建设的数字化和互联网化网站作品
  • 南京专业网站制作公司有哪些亚马逊网网站建设规划报告
  • app免费制作网站模板网站打开速度进行检测
  • 进下加强新闻宣传网站建设wordpress做论坛网站
  • 朝阳网站搭建公司淘宝导购网站备案
  • 京润珍珠企业网站优化洛阳做网站
  • 嘉定网站开发中山市区做网站公司
  • 可信赖的武进网站建设上海中小企业服务中心
  • 应用网站品牌官方网站
  • 网站建设综合训练的实验目的漳州网站建设网站运营
  • 网页设计免费网站推荐我的世界做壁纸的网站
  • 黄岩做网站的公司网站栏目相关内容在哪采集啊
  • 邯郸市城市建设局网站快速建站平台
  • 华为官方手表网站wordpress文章图片链接
  • 做个网站需要多久腾讯云云服务器官网