随笔分类 -  Functional Programming

Python Scheme
SICP-丘奇数 [转]
摘要:[转]http://somethin.is-programmer.com/来自sicp练习2.6,题目是这样说的:在一个可以对过程进行各种操作的语言里,我们可以完全没有数(至少在只考虑非负整数的情况下),可以将0和加一操作实现为:(define zero (lambda (f) (lambda (x) x)))(define (add-1 n) (λ(f) (λ(x) (f ((n f) x)))))这一表示形式称为Church计数,名字来源于其发明人数理逻辑学家Alonzo Church (丘奇),λ演算也是他发明的.请直接定义one和two(不用zero和add-1)(提... 阅读全文

posted @ 2013-01-16 00:27 龙豆 阅读(885) 评论(0) 推荐(0) 编辑

静态,动态,强类型,弱类型 [转]
摘要:对于动态语言与静态语言的区分,套用一句流行的话就是:Static typing when possible, dynamic typing when needed。“动”或“静”,强调的是实施类型的时间,编译里就要确定类型的是静态类型,比如C/C++/JAVA/C#,运行时才实施类型的则是动态类型,比如VB/Python。而“强”或“弱”刚强调实施类型的强度,强类型的语言,如C++等,变量的类型不可随意转换;而弱类型的语言,变量的类型可以随需要任意转换,而且通常都是隐式的。静态类型语言是指在编译时变量的数据类型即可确定的语言,多数静态类型语言要求在使用变量之前必须声明数据类型,某些具有类型推导 阅读全文

posted @ 2012-12-11 19:17 龙豆 阅读(261) 评论(0) 推荐(0) 编辑

Scheme的eq? equal? eqv? [转]
摘要:Scheme语言中可以用<,>,<=,>=,= 来判断数字类型值或表达式的关系,如判断变量x是否等于零,它的形式是这样的:(= x 0) ,如x的值为0则表达式的值为#t,否则为#f。还有下面的操作:(eqv? 34 34) => #t(= 34 34) => #t以上两个form功能相同,说明 eqv? 也可以用于数字的判断。在Scheme语言中有三种相等的定义,两个变量正好是同一个对象;两个对象具有相同的值;两个对象具有相同的结构并且结构中的内容相同。除了上面提到的符号判断过程和eqv?外,还有eq?和equal?也是判断是否相等的过程。eq?,eqv? 阅读全文

posted @ 2012-11-03 15:01 龙豆 阅读(2131) 评论(0) 推荐(0) 编辑

python : list tuple set dictionary [转]
摘要:默认地,所有index的下标均从0开始。一 list1) list 基础>>>a=['money','money','money',100000000]>>>a['money','money','money',100000000]>>>a[3]100000000>>>a[-1]=a[-1]*2>>>a[-1]200000000>>>['i','want']+a[ 阅读全文

posted @ 2012-05-19 14:30 龙豆 阅读(3559) 评论(0) 推荐(0) 编辑

Python特殊语法:filter、map、reduce、lambda [转]
摘要:Python内置了一些非常有趣但非常有用的函数,充分体现了Python的语言魅力!filter(function, sequence):对sequence中的item依次执行function(item),将执行结果为True的item组成一个List/String/Tuple(取决于sequence的类型)返回:>>> def f(x): return x % 2 != 0 and x % 3 != 0>>> filter(f, range(2, 25))[5, 7, 11, 13, 17, 19, 23]>>> def f(x): ret 阅读全文

posted @ 2012-05-19 13:44 龙豆 阅读(116658) 评论(2) 推荐(3) 编辑

函数式编程扫盲篇 [转]
摘要:1. 概论在过去的近十年的时间里,面向对象编程大行其道。以至于在大学的教育里,老师也只会教给我们两种编程模型,面向过程和面向对象。孰不知,在面向对象产生之前,在面向对象思想产生之前,函数式编程已经有了数十年的历史。那么,接下来,就让我们回顾这个古老又现代的编程模型,让我们看看究竟是什么魔力将这个概念,将这个古老的概念,在21世纪的今天再次拉入了我们的视野。2. 什么是函数式编程在维基百科中,已经对函数式编程有了很详细的介绍。那我们就来摘取一下Wiki上对Functional Programming的定义:Incomputer science,functional programmingis a 阅读全文

posted @ 2012-05-19 12:33 龙豆 阅读(1038) 评论(0) 推荐(0) 编辑

python class 的属性 [转]
摘要:Class 有一些特殊的属性,便于我们获得一些额外的信息。 1 >>> class Class1(object): 2 """Class1 Doc.""" 3 def __init__(self): 4 self.i = 1234 5 6 >>> Class1.__doc__ # 类型帮助信息 7 'Class1 Doc.' 8 >>> Class1.__name__ # 类型名称 9 'Class1'10 >>> Class1._ 阅读全文

posted @ 2012-05-16 19:42 龙豆 阅读(585) 评论(0) 推荐(0) 编辑

Python 类的定义、继承及使用对象 [转]
摘要:Python编程中类的概念可以比作是某种类型集合的描述,如“人类”可以被看作一个类,然后用人类这个类定义出每个具体的人——你、我、他等作为其对象。类还拥有属性和功能,属性即类本身的一些特性,如人类有名字、身高和体重等属性,而具体值则会根据每个人的不同;功能则是类所能实现的行为,如人类拥有吃饭、走路和睡觉等功能。具体的形式如下: 1 # 例:类的概念 2 class 人类: 3 名字 = '未命名' # 成员变量 4 def 说话(内容): # 成员函数 5 print 内容 # 成员变量赋初始值 6 7 某人 = 人类() ... 阅读全文

posted @ 2012-05-16 19:36 龙豆 阅读(22074) 评论(1) 推荐(2) 编辑

使用setuptools自动安装python模块 [转]
摘要:setuptools绝对是个好东西,它可以自动的安装模块,只需要你提供给它一个模块名字就可以了,并且自动帮你解决模块的依赖问题。一般情况下用setuptools给安装的模块会自动放到一个后缀是.egg的目录里,下面看看怎么用setuptools。首先,需要安装setuptools这个东西,安装它很简单,先去下载一个脚本: http://peak.telecommunity.com/dist/ez_setup.py 下载完后直接执行它就会帮你把setuptools给装好了。之后安装模块的使用方法就是使用一个叫easy_install的命令,在Windows里,这个命令在python安装目录下的s 阅读全文

posted @ 2012-03-30 20:54 龙豆 阅读(338) 评论(0) 推荐(0) 编辑

导航

< 2025年2月 >
26 27 28 29 30 31 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 1
2 3 4 5 6 7 8
点击右上角即可分享
微信分享提示