我一直在Linux平台上担任C开发人员.最近完成了K&R并做了一点关于在C中实现OOP的研究.除此之外我还研究过C++和Java.所有这些都在Linux平台上.
现在我打算学习LISP.我已经通过LISP讨论针对SO的初学者,特别是学习LISP的最佳方式是什么.
我理解,从程序化到功能性编程范式的转变是一个重大举措.从新范式的角度思考将是真正的挑战.就像我第一次学习OOP时那样.
这是我真正担心的范例.当我开始OOP时,大部分时间用于学习如何根据OOP查看问题.语法并不难理解.
现在,我一直在C工作,我目前在我工作场所的项目也在C中.我担心如何才能学会在函数式编程方面查看问题.
对于C开发人员来说,转向LISP的最佳方法是什么?
在我搬到LISP之前,我应该学习一些其他的中间语言吗?
如果是,那么可能是哪种语言?
任何特定的文本可以帮助我思考函数式编程的方式吗?
任何可以使这种转变更快更容易的建议?
谢谢你的时间.任何帮助和建议将不胜感激.
试试书籍:
Peter Siebel的实用Common Lisp(可在http://www.gigamonkeys.com/book/在线获得).
然后由Paul Graham编写的ANSI Common Lisp由同一作者尝试On Lisp.
人工智能编程范式:Peter Norvig的Common Lisp案例研究
其他寻求帮助的地方包括FreeNode和LispForum(http://www.lispforum.com/)上的#lisp频道.
其中PCL可能是最容易进入的,如果你试图学习Lisp作为学习函数式编程的一种方式你会感到失望,你可以使用Lisp做FP但它不是严格意义上的FP语言.
可能重复
你可能比麻省理工学院课程6.001"计算机程序的结构和解释"做得更糟.该课程使用Abelson和Sussman的文字 ; 另请参阅本书的主要网站以获取更多信息.
该课程使用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系统.对于Common LISP,有几种选择:我可能从GCL开始- GNU Common LISP.适用于Linux和Windows的版本.