摘要: 函数式编程风格通常来讲,函数式编程的谓词(关系运算符,如大于,小于,等于的判断等),以及运算(如加减乘数等)都会以函数的形式出现,比如: a > b通常表示为: gt(a, b)//great than因此,可以首先对这些常见的操作进行一些包装,以便于我们的代码更具有“函数式”风格:function abs(x){ return x>0?x:-x;}function add(a, b){ return a+b; }function sub(a, b){ return a-b; }function mul(a, b){ return a*b; }function div(a, b){ 阅读全文
posted @ 2013-06-27 22:59 水之原 阅读(1966) 评论(0) 推荐(0) 编辑
摘要: 原文作者的观点是Lambda表达式一定会包含在JDK 7中,而全文也着重介绍了这方面的知识,作者认为函数式编程的概念也将出现在JDK 7中.Lambda表达式Lambda表达式并不是什么新概念,自Alonzo Church提出Lambda微积分的概念以来,已经有30个年头了,从那时开始,它们就成为许多函数式编程语言的重要特性,最突出的可能要算Lisp,现在Lambda表达式已经跻身于函数式编程语言的一等公民。Lambda表达式是一个匿名函数,为了演示,这里有一个段你可能经常看到的Python代码段:list=[1,2,3,6,8,] printfilter(Lambdax:x*2>10, 阅读全文
posted @ 2013-06-27 22:36 水之原 阅读(516) 评论(0) 推荐(0) 编辑
摘要: 递归是拖慢脚本运行速度的大敌之一,太多的递归会让浏览器变得越来越慢直到死掉或者莫名其妙的突然自动退出。这里我们可以通过memoization技术来替代函数中太多的递归调用,提升JavaScript效率。递归是拖慢脚本运行速度的大敌之一。太多的递归会让浏览器变得越来越慢直到死掉或者莫名其妙的突然自动退出,所以我们一定要解决在JavaScript中出现的这一系列性能问题。我们可以通过memoization技术来替代函数中太多的递归调用。memoization是一种可以缓存之前运算结果的技术,这样我们就不需要重新计算那些已经计算过的结果。对于通过递归来进行计算的函数,memoization简直是太有 阅读全文
posted @ 2013-06-27 22:27 水之原 阅读(737) 评论(0) 推荐(1) 编辑