随笔分类 -  FP

函数式编程相关
摘要:这书也算是必修吧,尤其是我这种非科班人员,还是应该抽时间尽量学习一下。大致翻过一遍,习题非常多,尽力吧。##构造过程抽象* 为了表述认知,每种语言都提供了三种机制:基本元素;组合方式;抽象方法。* 前缀表示法,haskell中有学过,scheme中基本都是前缀表达,这使得表达式的可读性略微降低。* 声明变量:`(#define name value)`,和C中的宏声明一致,声明函数:`(#define (func ( para1,para2...) ())`;* 一般性求职规则是**树形累积**,其他的被称为**特殊形式**(如`define`语句)。* Scheme中多项式求值遵从**代换模 阅读全文
posted @ 2013-11-24 13:48 生无所息 阅读(2111) 评论(0) 推荐(0)
摘要:《learn you a Haskell》这书的结构与常见的语言入门教材完全不一样。事实上,即使学到第八章,你还是写不出正常的程序…因为到现在为止还没告诉你入口点模块怎么写,IO部分也留在了最后几章才介绍。最重要的是,没有系统的总结数据类型、操作符、语句,这些知识被零散的介绍在1-8章的例子中,换句话来说,这书其实不算是很合格的教材(代码大全那种结构才更适合),不过它重点强调了FP与其他语言的思想... 阅读全文
posted @ 2012-08-02 22:06 生无所息 阅读(12621) 评论(0) 推荐(0)
摘要:…高阶函数map :: (a->b) ->[a] ->[b],将函数f依次应用于序列[a],得到新的序列[b]。filter :: (a->bool)->[a]->[a],利用函数f过滤序列[a]。这两个函数都可用list comprehension来实现,不过在某些情况下更简洁。利用这两个函数和CF组合可以生成各种需要的函数。lambda著名的lambda表达式(C++11中引入),也就是匿名函... 阅读全文
posted @ 2012-07-22 19:54 生无所息 阅读(9688) 评论(0) 推荐(0)
摘要:…第四章 函数的语法Let it belet绑定类似于where绑定,都是用来定义局部变量(函数),其语法结构是:let [bindings] in [expressions]let绑定与where的区别之处在于,前者是一个表达式,而后者却是一个语法结构。表达式是可以嵌入其他表达式的,前面学到的if语句也是一种表达式。如果定义的局部变量不止一个,可以写在一行用";"隔开,也可以断行... 阅读全文
posted @ 2012-07-20 00:35 生无所息 阅读(1154) 评论(0) 推荐(0)