我一直在Linux平台上担任C开发人员。最近完成的K& R并做了一点关于在C中实现OOP的研究。除此之外我还研究过C ++和Java。所有这些都在Linux平台上。
现在我打算学习LISP。我已经经历了针对初学者的LISP讨论,特别是What’s the best way to learn LISP。
我理解,从程序化到功能性编程范式的转变是一个重大举措。从新范式的角度思考将是真正的挑战。就像我第一次学习OOP时那样。
这是我真正担心的范例。当我开始OOP时,大部分时间用于学习如何根据OOP查看问题。语法并不那么难掌握。
现在,由于我一直在C工作,我目前在我工作场所的项目也在C中。我担心如何才能学会在功能编程方面查看问题。
感谢您的时间。任何帮助和建议将不胜感激。
答案 0 :(得分:10)
试试书籍:
Peter Siebel的实用Common Lisp(可在http://www.gigamonkeys.com/book/在线获得)。
保罗格雷厄姆的ANSI Common Lisp然后由同一作者尝试On Lisp。
人工智能编程范式:Peter Norvig的Common Lisp案例研究
其他寻求帮助的地方包括FreeNode和LispForum(http://www.lispforum.com/)上的#lisp频道。
这些PCL可能是最容易进入的,如果你试图学习Lisp作为学习函数式编程的一种方式你会感到失望,你可以使用Lisp来做FP但它不是严格来说是一种FP语言。
答案 1 :(得分:6)
你可能比MIT Course 6.001 "Structure and Interpretation of Computer Programs"做得更糟。该课程使用Abelson & Sussman's text;另请参阅the book's main site以获取更多信息。
该课程使用Scheme,一种LISP方言,它比Common LISP更清晰,更容易使用(是的,这是一个意见,处理它)。切换到通用LISP后来不会那么困难。 Paul Graham的On LISP是关于Common LISP编程的“不带囚犯”的文本。他的ANSI Common LISP是对这个主题的更温和的介绍。
现在是坏消息。在LISP中转向WORKING可能非常困难,因为那里有更多的C / C ++和Java工作。
我建议您直接学习LISP。这并不困难。
你需要一个LISP系统来玩。如果您使用Scheme,则很难超越MIT/GNU Scheme system。对于Common LISP,有几种选择:我可能从GCL - GNU Common LISP开始。适用于Linux和Windows的版本。
答案 2 :(得分:4)
我最初学习lisp的书是DP弗里德曼的The Little Schemer。真的让你的头脑成为一种功能性编程思维。
答案 3 :(得分:2)
阅读“Practical Common Lisp”。在我的公司,我们每天至少有70名程序员使用Common Lisp进行复杂,实用的程序(航空公司票价搜索,航空公司预订系统),当新程序员出现不熟悉Lisp时,我们只需交给他或她一个“Practical Common Lisp”的副本。我不能说这本书有多棒。
答案 4 :(得分:1)
我发现python基础(lambda函数等)对于掌握lisp非常有帮助。
有一段时间我决定学习使用lisp方言的emacs脚本,这非常有帮助,因为那时你知道你想做什么,而不是通过练习。
我认为你需要一个带有lisp支持和shell的优秀文本编辑器。然后只是尝试制作目标项目并实施它。
答案 5 :(得分:1)
我个人认为GNU Emacs Lisp Tutorial很高兴阅读。它会给你一般的想法。
答案 6 :(得分:1)
我建议首先阅读成功Lisp直至第3章,不要继续阅读第4章.3然而,掌握Lisp的思路。然后阅读Gentle,然后阅读Practical Common Lisp。从那里开始,一般的Common Lisp实验将从那里帮助你。
答案 7 :(得分:1)
我最近买了Land of Lisp,发现它非常有趣和有教育意义。我可以推荐它。