lisp作为“函数式编程”语言,与c语言有何不同
并不是可以自定义函数就叫函数式编程语言啊维基C语言第一行就说明C是过程式,并且全文没有「函数式」三个字
■网友
1,此函数非彼函数。 lisp 里函数是first class,换句话说一个函数是可以当作其他函数的返回值 c 里边函数是third class,不能作为其他函数返回值,不能当其他函数的参数。c可以说是algo方言,algo像英语,lisp更像数学。2,函数式语言通有的特性是parameter polymorphic,通俗点说你用c写了个"int quickSort(int arr)",那这函数就只能用来比较int,但是函数式语言你就能写quickSort(aList, aMethod), 其中aList是任意类型用来排序的list, aMethod是用来判断该类型关系的函数,这样能对所有类型排序。3,函数式语言不存在变量,只能出于方便起见声明常数。刚开始你给几个参数,然后函数之间互相调用,然后给你一个结果,这就是lisp. 同时没变量也就没有循环,想重复就得递归。可想而知并不是所有我们想做的东西都可以用递归解决的,所以在很多需要特殊数据结构的地方lisp很不好使,比如说symbol table。4,函数式语言里允许有匿名函数(大函数里套小函数,小函数里套小小函数,大伙都没有名字),这就需要创造cloures进行deep binding,要不然就不知道匿名函数里的非本地引用在哪了。C里边没有cloures,用全局变量能达到相同效果,不过全局变量容易把程序弄乱,少用。5,lisp语义简单,基于s表达式,可以自己解释自己。c应该是不行。6, 学点lisp能让你从新的角度思考编程,很有启发性。伸手可耻,自己学吧。1A: Overview and Introduction to Lisp祝楼主早日成大牛。
■网友
我觉得题主问这个问题之前应该先去查下函数式编程。
推荐阅读
- 『板房』搬新房迎新年 2021听他们说幸福 告别大板房
- 当下电脑城/电子城/数码城的业务日益萧条,作为普通的创业者该怎样转变思路从而突围
- 汽车|滴滴的新欢PK旧爱:D1对比e5强在哪里
- 环球车讯网|全新款宾利添越实拍鉴赏
- 作为一个服装供应商,怎么样与淘宝卖家沟通才能卖出自己的产品或者拿到订单
- 作为软件工程大二的学生,学习一般,编程一般,毕业后能干些啥
- 毕业生|招聘中不得将全日制作为限制性条件2021届高校毕业生预计909万人
- 汽车知识|广汽本田皓影看车记
- 汽车知识|雅阁作为中级车的王者,以三大件来说,它的表现相当不错!
- 作为一个打码的,有没有一段时间特不想打码,后来是咋熬过来的
