`

函数式编程 读后感

阅读更多

 

一篇比较不错的文章: http://coolshell.cn/articles/10822.html

 

以使用Erlang的感觉看, 其具有很多函数式编程的优点与多线程支持的好处.

 

函数式编程主要具有如下特性:

  • 所有都可以转变成函数
  • 赋值后的变量在解释器层面具有不可变性
  • 尾递归优化

主要技术:

  • Map & Reduce
  • Pipeline
  • 递归
  • 参数与返回值均可以是函数

在Ruby中,可以吸取函数式编程带来的建议(Ruby Best practices):

  • 仅lamba表达式是用时求值,其它都是及时处理的
  • 在编码时,需要注意变量影响问题(grub!等会对变量自身进行改动)
  • 通过模块对函数块进行封装与管理
  • 通过空间换时间进行优化(Ruby Memorize API)

 

分享到:
评论

相关推荐

    Java编程思想读书笔记.rar

    引数组建立后,其中的每一个reference都会被自动设为null,表示“不指向任何对象”。 二.建立新的数据型别:Class 1. 数据成员和函数 1.1 基本成员的缺省值 1) 当class的某个成员属于基本型别时,即使你没有...

    Oracle SQL高级编程(资深Oracle专家力作,OakTable团队推荐)--随书源代码

    14.4 多版本读一致性 390 14.5 事务控制语句 391 14.5.1 Commit(提交) 391 14.5.2 Savepoint(保存点) 391 14.5.3 Rollback(回滚) 391 14.5.4 Set Transaction(设置事务) 391 14.5.5 Set Constraints(设置约束...

    新版Android开发教程.rar

    ANDROID 的推出后可能影响的产业包括移动电信业,软件开发业,手机制造业,在以消费者为核心的状 态 。 对消费者的影响 � 高档手机选择面增加。 � A ndroid 在设计初期就考虑了与现其有业务的融合,改变以往从...

    asp.net知识库

    多样式星期名字转换 [Design, C#] .NET关于string转换的一个小Bug Regular Expressions 完整的在.net后台执行javascript脚本集合 ASP.NET 中的正则表达式 常用的匹配正则表达式和实例 经典正则表达式 delegate vs. ...

    软件工程思想

    2.3 程序员升为经理后是否还要编程 2.4 经理与技术队伍的建设 2.5 向错误与失败学习 2.6 提高综合素责 2.7 小结 第三章 项目计划与质量管理 3.1 项目计划 3.1.1 知己知彼 3.1.2 进度安排 3.2 零缺陷质量管理的观念 ...

    2017数学建模国赛+深圳杯优秀论文

    《 SPSS 统计分析基础教程》&《SPSS 统计分析高级教程》张文彤等著 阅读人 群:编程 这两本书手把手地教你如何使用 SPSS 分析数据,加上 SPSS 本身“傻瓜式” 设计,因此配合这两本书进行一定的学习足够了。...

    C++MFC教程

    这样做的目的主要是增加对语言的熟悉程度,同时也训练自己的思维和熟悉一些在编程中常犯的错误。更重要的是理解并能运用C++的各种特性,这些在以后的开发中都会有很大的帮助,特别是利用MFC进行开发的朋友对C++一定...

    基于AT89S52 单片的频率计

    或零件引脚)感生出相应的干扰,可通过电磁屏蔽和合理的布线/器件布局衰减 该类干扰;电源线或电源内部产生的干扰,它是通过电源线或电源内的部件耦 合或直接传导,可通过电源滤波、隔离等措施来衰减该类干扰。 内因...

    自己动手写操作系统(含源代码).part2

    在读完本书后,你不但可以获得对于操作系统初步的感性认识,并且对 IBMPC的接口、IA架构之保护模式,以及操作系统整体上的框架都将会有一定程度的了解。 笔者相信,当你读完本书之后,如果再读那些纯理论性的操作...

    自己动手写操作系统(含源代码).part1

    在读完本书后,你不但可以获得对于操作系统初步的感性认识,并且对 IBMPC的接口、IA架构之保护模式,以及操作系统整体上的框架都将会有一定程度的了解。 笔者相信,当你读完本书之后,如果再读那些纯理论性的操作...

    关于ds18b20程序

    //读暂存器和CRC值----------------------- if(Ds18b20_ReadEE(temp)) { TR1 = 1; TR0 = 1; return 1; } //------------------------------------- //CRC校验------------------------------ // //此处应加入...

    算法导论(part1)

    我们发现,与对递归式进行迭代相比,画出递归树后出错的可能性小了。但是,我们也指出了递归树的最佳用途,即利用它来产生猜测,再利用替代方法对猜测进行验证。 ·快速排序(第7.1节)中用到的划分方法与期望线性...

    算法导论(part2)

    我们发现,与对递归式进行迭代相比,画出递归树后出错的可能性小了。但是,我们也指出了递归树的最佳用途,即利用它来产生猜测,再利用替代方法对猜测进行验证。 ·快速排序(第7.1节)中用到的划分方法与期望线性...

    二十三种设计模式【PDF版】

    要知道软件还有一个与建筑截然相反的责任和用途,那就是:现代社会中,计划感不上变化,竞争激烈,所有一切变幻莫测,要应 付所有这些变化,首推信息技术中的软件,只有软件能够帮助人类去应付各种变化.而这点正好与建筑想反...

    软件工程知识点

    结构化设计中的函数、过程,面向对象设计中的类、对象,它们都是模块。概要设计时并不需要说明模块的内部细节,但是需要进行全部的有关它们构造的定义,包括功能特征、数据特征和接口等。 在进行概要设计时,模块的...

Global site tag (gtag.js) - Google Analytics