首先以spark的本地模式测试spark API,以local的方式运行spark-shell: 先从parallelize入手吧: map操作后结果: 下面看下 filter操作: filter执行结果: 我们用最正宗的scala函数式编程的风格: 执行结果: 从...
何为高阶函数 大家可能对这个名词并不熟悉,但是这个名词所表达的事物却是我们经常使用到的。只要我们的函数的参数能够接收函数,或者函数能够返回函数,当然动态生成的也包括在内。那么我们就将这类函数叫做高阶函数。但是今天我们的标题并不是高阶函数,而是标准高阶函数,既然加上了这个标准,就意味着在函数式编程.....
关于递归相信大家已经熟悉的不能再熟悉了,所以笔者在这里不就不多费口舌,不懂的读者们可以在博客园中找到很多与之相关的博客。下面我们直接切入正题,开始介绍尾递归。尾递归 普通递归和尾递归如果仅仅只是从代码的角度出发来看,我们可能发现不了他的特点,所以笔者利用两张堆栈上的图来展示具体的差距在哪,...
缓存技术 该节我们将分成两部分来讲解,第一部分为预计算,第二部分则为缓存。缓存这个技术对应从事开发的人员来说是非常熟悉的,从页面缓存到数据库缓存无处不在,而其最重要的特点就是在第一次查询后将数据缓存,在以后的查询过程中就无需重新计算而直接从内存中将结果返回,大大提高了性能,而我们这里的缓存则集中.....
接触PHP一段时间以来,我一直以为这是一种基于函数式编程的语言是没有闭包这种东西的,但事实上却颠覆了我的想法,PHP竟然有闭包,下面我们一起来接触一下PHP的所谓的闭包。根据PHP官网的定义来看,闭包(closure)又可以叫做匿名函数(Anonymous function),其实我们知道在JS中,...
分类:
Web程序 时间:
2015-01-24 01:33:27
阅读次数:
131
lambda算子是一切函数式语言的基础,明白lambda算子对于掌握函数式语言有着许多好处。最近学习相关知识略有所得,故在此写出以备忘:1 基础λ 算子是函数式编程的理论基础,是图灵机外的另一种计算模型。 它十分简洁,只有三条产生规则,却可以表达一切可计算的函数。λ 算子的核心概念是表达式expre...
分类:
其他好文 时间:
2015-01-23 20:01:56
阅读次数:
192
惰性求值 在开始介绍今天要讲的知识之前,我们想要理解严格求值策略和非严格求值策略之间的区别,这样我们才能够深有体会的明白为什么需要利用这个技术。首先需要说明的是C#语言小部分采用了非严格求值策略,大部分还是严格求值策略。首先我们先演示非严格求值策略的情况,我们先在控制台项目中写一个DoOneTh.....
何谓函数式编程 相信大家在实际的开发中,很多情况下完成一个功能都需要借助多个类,那么我们这里的基本单元就是类。而函数式编程则更加细化,致使我们解决一个功能的基本单元是函数,而不是类,每个功能都是由多个函数构成,并且函数之间没有直接的关系。如果简单的文字描述还不足以让你理解,下面我们就配以图来演示.....
12.3.2 筛选和映射
最常用的序列处理运算,是筛选(filtering)和映射(projection);在第六章,我们用它们处理 F# 函数式列表,和 C# 的泛型 .NET List 类型。LINQ 库中的 Where 和 Select 扩展方法已经可以处理序列,而在 F# 中,使用Seq 模块中两个函数(即 Seq.map 和 Seq.filter),能达到相同效果。...
分类:
其他好文 时间:
2015-01-22 18:07:14
阅读次数:
148
趁着自己重装Linux 虚拟机的机会,把安装 haskell 的过程记录一下,顺便帮那些还犹豫徘徊在haskell门外的读者入门。基本概念:Haskell : 是一门通用函数式语言,差点儿能够进行不论什么种类的开发,包含命令行,GUI,数据库,Web.源码能够跨平台: Linux,Mac, Wind...
分类:
其他好文 时间:
2015-01-22 00:01:15
阅读次数:
257