对于一个新的(ish)程序员来说,Lisp难以学习吗?

Rub*_*chy 20 lisp scheme common-lisp

我对Python有一点经验(足够我可以做的事情,如果/ else/elif和一些随机数生成),但我总是对Lisp语言有一种奇怪的迷恋.我下载了一些方案源代码来查看语法,但这对我来说非常愚蠢.

对于像我这样只有一点编程经验的程序员,给出一些好书,网站和一些时间,学习Common Lisp或Scheme会特别困难吗?哪两个会更容易?就易学性而言,它们与Python和C相比如何?

谢谢

Mat*_*eer 25

获得SICP(计算机程序的结构和解释).直到最近,这是麻省理工学院的入门级CS课本.它完全基于Scheme.如果你喜欢CS,你会喜欢这本书.这是梦幻般的.在阅读之后你也会离开一个更好的程序员(最理想的做大部分练习).这是一本理想的初学者书,它从一开始就开始,让你轻松胜任Scheme.然而,这是一本大学教科书,所以除非你有一点编程的诀窍,否则它可能有点困难.

  • 但是,它并没有教你Scheme.这本书的惊人之处在于,它只使用过时版本的Scheme的一小部分教你几乎所有的编程和计算机科学.换句话说:SICP教你*一切*但不是Scheme. (17认同)
  • 它不再是了.麻省理工学院现在已经开始使用Python作为他们的入门语言.这是一个耻辱的IMO. (6认同)
  • 事实上,过时版本的Scheme的那一小部分似乎是Scheme的本质.换句话说,一旦掌握(足够程度)*SICP教导的所有内容*,理解(核心)方案就会产生副作用.:-) (4认同)

Nor*_*sey 22

鉴于一些好的书籍,网站和一些时间,学习Common Lisp或Scheme会特别困难吗?

没有.

哪两个会更容易?

方案,因为

就易学性而言,它们与Python和C相比如何?

我认为学习C比学习Python或Scheme更难,因为要学习C你真的需要学习机器模型,指针和动态内存.

在Scheme和Python之间,很难预测任何个人学习者的反应.我非常喜欢Python的重要空白,我发现Scheme的括号令人烦恼并且分散注意力.很多人都非常喜欢Scheme的括号,他们发现Python的重要空白令人烦恼并且分散注意力.(存在重要的语义差异,但很难摆脱语法的暴政.)

我应该使用哪些书?(你应该问的问题,但没有)

不要使用计算机程序的结构和解释(SICP). 这本书的观点是"让我们通过编写Scheme中的所有计算机科学来展示我们的聪明才智." 这本书是一个巨大的智力之旅,但它根本不适合初学者.当麻省理工学院在6.001中使用它时,它就像一个"除草"课程,因为30-40%的麻省理工学院学生想要主修EECS,他们试图让人们离开.SCIP 对于具有5年经验的高级CS学生或程序员来说非常棒. 不要试图从中吸取教训.

一些可以学习的好书:

  • Felleisen等人如何设计程序经过多年的经验精心打造和磨练.它使用Scheme并告诉你它在标题中所声称的内容.强烈推荐.

  • Harvey和Wright的 Simply Scheme是一本入门的CS书,是那些认为SCIP需要"前传"的人.我喜欢阅读它,但我没有教过它.

  • 如果你能保持可爱,Felleisen和Friedman的The Little Schemer有一种非常不寻常的辩证风格,有很多例子,你可能会喜欢.

  • @Matt:你为我提出我的理由!SICP是一本非常棒的"固井"书.作为首发,不是那么多.对我来说,这不是本书的强硬之处; 这是观众.当你知道一些CS并且有一些编程时,它根本不是一本难懂的书.相反,它只是一个又一个"哦,哇"的时刻.** (6认同)
  • 我不同意SICP"根本不适合初学者".它取决于初学者是谁.毕竟,并非每个人都在当天退出6.001.是的,这本书很难,如果没有教授和/或助教的帮助,可能很难解决这个问题.但冒着傲慢的风险,这个行业可以使用更多像这样的书开始的人.编程计算机并不容易.挑战你的智力和理解掌握这种技巧是一个很好的事情从开始就知道是一件好事.像SICP这样的书有助于巩固这一点. (5认同)

Mic*_*ael 5

得到

"小计划者"

"先进的计划者"

这些书作为编程概念助手是不可或缺的.我个人在SICP面前做这件事只是因为SICP有点快,如果你之前没有编程太多......即使你有他们的好书!

我个人认为Scheme是一种非常好的教学语言.它可以用于我想的任何事情,但它非常适合教授编程结构而不会陷入语法问题.你将获得的纯粹语义最接近的东西.