考试网 >> IT认证 >> JAVA >> JAVA指导 >> 关于Java 语言中的函数编程

关于Java 语言中的函数编程

发布时间:2006-06-28 11:10     点击:
分页:上一页  1 2 [3] 4 5 6 7 8 9 10  下一页  后10页

  

  我使用了由 Apache Commons Functor 项目提供的库构建本文使用的例子。Apache Commons Functor 库包括大量基本构造,可以在涉及闭包和高阶函数的复杂使用场景中重复使用。当然,可以使用不同的实现(如 Java Generic Libraries、Mango 或者 Generic Algorithms for Java),而不会对在本文中所讨论和展示的概念有影响,尽管您必须下载和使用 Apache Commons Functor 库才能演示这里的例子。

  

  引用透明性

  

  函数程序通常还加强 引用透明性,即如果提供同样的输入,那么函数总是返回同样的结果。就是说,表达式的值不依赖于可以改变值的全局状态。这使您可以从形式上推断程序行为,因为表达式的意义只取决于其子表达式而不是计算顺序或者其他表达式的副作用。这有助于验证正确性、简化算法,甚至有助于找出优化它的方法。

  

  副作用

  

  副作用是修改系统状态的语言结构。因为 FP 语言不包含任何赋值语句,变量值一旦被指派就永远不会改变。而且,调用函数只会计算出结果 ── 不会出现其他效果。因此,FP 语言没有副作用。

  

  这些基本描述应足以让您完成本文中的函数编程例子。有关这个主题的更多参考资料请参阅 参考资料一节。

  

  Java 语言中的函数编程

  

  不管是否相信,在 Java 开发实践中您可能已经遇到过闭包和高阶函数,尽管当时您可能没有意识到。例如,许多 Java 开发人员在匿名内部类中封闭 Java 代码的一个词汇单元(lexical unit)时第一次遇到了 闭包。这个封闭的 Java 代码单元在需要时由一个 高阶函数 执行。例如,清单 1 中的代码在一个类型为 java.lang.Runnable 的对象中封闭了一个方法调用。

  

  清单 1. 隐藏的闭包

  

  Runnable worker = new Runnable()

  {
分页:上一页  1 2 [3] 4 5 6 7 8 9 10  下一页  后10页
版权申明:未经书面授权请勿转载本站信息!!作品版权归所属媒体与作者所有!!
发表评论: 匿名发表 用户名: 查看评论
您将承担一切因您的行为、言论而直接或间接导致的民事或刑事法律责任
留言板管理人员有权保留或删除其管辖留言中的任意内容
本站提醒:不要进行人身攻击。谢谢配合。
在本站搜索相关信息
2003-2005 Ksw123.com All Rights Reserved. - TOP
Copyright © 2006 Ksw123.com. All rights reserved.中国考题网 版权所有