Scheme语言,什么意思,求解释一下!
ls还汇编呢。
scheme就是一种专门的语言,运算符号是在变量前面的,比如(* z x) 就是z * x,display是显示,newline是另起一行,let是定义,这样说了应该能看懂了吧。
common lisp和scheme,应该先学哪个?
在任何一个开发社区提问这个问题, 恐怕都会引起激烈的争论. 一定程度来说, 这是一个 个人偏好问题. 下面是我的看法.
首先, 我们知道 scheme 也是一种 lisp 方言, 因此下文用 lisp 来泛指各种 lisp 方言.
选择mon lisp 还是 scheme, 我认为这要看你学习 lisp 的目的. Eric Raymond 在 "如何成为一名黑客" 一文中说过: "Lisp 很值得学习. 你掌握它以后, 会感到它给你带来的极大的启发. 这会大大提高你的编程水平, 使你成为一个更好的程序员 ". 如果你仅仅以此为目的, 而不打算把 Lisp 作为自己日常开发甚至商业开发的语言, 不妨从更简洁一些的 scheme 学起. 在我看来, scheme 更像是一种教学型语言, MIT 的两本著名教材 SICP (Structure and Interpretation of Computer Programs) 和 HTDP (How to Design Programs) 都是以 scheme 为基础的.
如果你打打算把 lisp 作为自己今后的主要开发语言, 那么就一定要学学mon lisp 了, 这绝对是一个强大的语言, 除了语言本身的强大, 还有丰富的库. 图形界面, 服务器什么的各种应用都可以做.
Lisp语言 可以推荐我一本入门书籍吗
Common Lisp和Scheme是Lisp家族的两大主要方言,通用性比较好,ELisp和AutoLisp只能在特定的环境下使用,所以不推荐。
如果你只是想学习FP的思想,可以直接学习Scheme,FP的思想都有了,还比较简单,只不过库不太完备。
如果追求CL的强大可以看看Racket,是PTL Scheme的进化版。
作者:Aloys寒风
来源:知乎
推荐几本lisp的书.
首先,如果你对这语言很陌生,我建议你看看paul graham的the roots of lisp,只有十三页,看完以后,你就知道lisp的七条公理,知道lisp是如何构建起来的了。
同时你也会被lisp语言的优美和强大而感到惊讶。
其次你可以确定一下你的方向。
lisp的方言众多,很多都是专业领域内的东西,general purpose的被广泛采用的主要是两个mon lisp(简写CL)和scheme(原名schemer)
我是mon lisp的,对于scheme了解甚少。
但事实上两个东西差不多。
对mon lisp,如果你觉得paul graham的那文章很好看,那么就继续读他的ANSI Common Lisp 吧,这本书篇幅不大,只有四百页左右(我没有记错的话)。
而且对于语言有很详细的介绍、例子和参考手册。
看完以后绝对收益匪浅。
如果你看了中毒了,那好还有一本他写的书: On Lisp: Advanced Techniques for Common Lisp。
如果想对mon lisp有更加深厚的了解,那么可以看看Common Lisp: The Language,这本书的地位是圣经性质的,相当于the c programming language在c领域中的地位,可惜篇幅太长,我没有看,只是需要时参考一下。
对于scheme而言,最好的教科书莫过于 Abelson, Sussman, and Sussman的Structure and Interpretation of Computer Programs了。
这本书是MIT的著名的6.001,即计算器导论课程的教科书,在MIT是必修科目,甚至我推荐一心搞cl的人也看一看。
这本教材从80年代初一直用到现在,影响力是不言而喻的。
事实上scheme比CL简单,刚才提到的Common Lisp: The Language足足有1000多页长,然而scheme的定义只有50页。
那就是RnRS,Revised nth Report on the Algorithmic Language Scheme,其中n是修订数,现在的版本号是5,即R5RS,是1995年修订的,事实上不必考虑版本,从来没有人说请用scheme1995标准编写你的程序(与之相对的,请用3.2编译kde,用c99标准等等)。
其它对于scheme的我不敢多说,生怕误导人。
最近也开始看有关scheme的书,所以是和大家一起学习。
最后,大家知道,lisp和人工智能是紧密联系在一起的,下面几本书关于人工智能。
我对这个领域很无知,所以这些书目,是MIT的几个学生的推荐:
作为消遣的书:我也不知道为什么他们推荐这些书,但我觉得很有趣。
Godel, Escher, Bach : An Eternal Golden Braid (GEB),这本书有中文译本,可读性很强,非常有趣。
the society of mind,今天在图书馆泡了一下午看这本书。
很有收获,大致知道什么叫做人工制能。
深入研究的书:
Artificial Intelligence: A Modern Approach by Russell and Norvig
Machine Learning by Tom Mitchell
Paradigms of AI Programming: Case Studies in Common Lisp by Peter Norvig
所以总的来说,如果你想mon lisp, 看到paul graham的书,买来就是了。
想学scheme,那就上一下MIT的6.001课程。
如果想搞人工制能(我大概就没那么大能耐了),看到Peter Norvig的书就买,别管价钱。
Scheme是纯函数式语言吗
简言之,不论是面向对象编程还是函数式编程,如果你走了极端,那都是错误的。
面向对象编程的极端是一切都是对象(纯面向对象)。
函数式编程的极端是纯函数式编程语言。
面向对象编程的问题 面向对象的问题在于它对“对象”的定义
scheme,cl和Python的区别
我们使用非lisp编程,写代码来解决重复出现的问题。
而我们使用lisp编程,却有更方便的能力,写代码来生成重复出现的解决相同问题的代码。
将代码像数据一样进行处理,是lisp有别于其他非lisp语言的本质特征。
其他语言,虽然也可以这样做,但却会比lisp走更远的路。
而且,按照lisp程序员的视角来看,python及它的那些函数库,可能只不过是对lisp的一种扩展罢了。
但是,只打算学好lisp一门语言而其他语言都不闻不问,是很困难的。
这正如,只打算学会微积分,而加减法却不了解,也是很难的一样。
说说cl
排序: sort
读取文件: with-open-file
对常见XX对象进行XX常见操作: oop 在lisp中用的不多, 至少我很少用
向数组添加元素: 性能要求不高直接用list
对字符串进行各种操作: 这个要自己实现,或者在网上找些库,或者直接用正则, 不会花太多时间。
谁说CL文件, 数据处理不实用,我最近一直用cl做文件以及数据的处理.
用scheme编程语言可以编写类似QQ这样的软件吗
每一种编程语言都有其特有的优势,很多语言更是主要用于某一领域。
scheme显然不适合用来做类似QQ这样的应用。
你与其不停的问问题,不如踏实下来认真学一些东西,如果觉得不好,再学别的,即使以后不用以前学的了,也是收获。
Lisp/scheme是函数型语言,与流行的命令行语言(如C、Java)有很大的差别。