Paradigms of Artificial Intelligence Programming: Case Studies in Common Lisp
我没电子书版的,而且这本算是进阶读物了。
虽然书名比较吓人,但是这本书其实就是讲如何解决复杂问题的。
Paradigms of Artificial Intelligence Programming: Case Studies in Common Lisp
我没电子书版的,而且这本算是进阶读物了。
虽然书名比较吓人,但是这本书其实就是讲如何解决复杂问题的。
本来以为 Common Lisp会是一个入门的绝佳选择,会比较简单。看了《实用common lisp编程》,我勒个去,这书怎么读啊?
大量的东西不经介绍,直接使用,连给我喘口气的机会都没有!晕菜了!
入门从clojure简单啊,关键是有生态,很好实践。
求中文读物,我英语不怎么好
上面出现过好些次的 The Little Schemer 有中文译本
补充一个 EusLisp(和EuLisp没有任何关系),ROS(机器人操作系统)平台上的Lisp开发语言,2020年的今天仍然处于活跃状态。
有没有什么进阶的CLOS读物可以推荐?读过PCL和Common Lisp Cookbook的CLOS章节,都比较简略,讲了语法,但没有深入讨论基于CLOS的模式,设计方法,最佳实践,以及这些方法如何最大程度的发扬CLOS的独特优势。因为缺少深入的资料,手头的东西看完以后处于可以用CLOS编写拙劣的C++代码的程度,比较尴尬。
PS. 我知道CLOS和传统OO语言的主要区别是多重分派,但是除了可以用这个比较简单的实现visitor模式之外,不知道还能干嘛,尤其是不知道如何基于multimethod来设计API
纵向得看 pre Common Lisp 的 LOOPS 和 Flavors,EuLisp 的 TELOS,和 AMOP
橫向对比 Eiffel, Smalltalk, Sather, BETA
模式是沒有模式的。不同项目写的 Lisp 代码区別相当大。Peter Andrews, Robert Constable, Peter Norvig, Guy Steele 我看过他们写的 Lisp 风格可以说是各不一致,对 CLOS 的取舍更是完全不同。反正对模式我是沒有什么执念的。
真不知道要怎么设计去套用 Design Patterns 也沒什么问题。肯从现成代码学习的话推荐 robert-strandh (Robert Strandh) · GitHub 的项目,风格相当成熟,不是青头可以比的,而且是重度偏好用 CLOS 的现代范例,沒有 90 年代用 CLOS 写的老项目的 code smell。还有 Shinmera (Nicolas Hafner) · GitHub 相对 conservative 的,比较朴实的风格。
但是说实也可以放弃 design pattern 用偏向 functional programming 的写法,只要搞懂 method combination (比如看完 AMOP),然后把 multiple dispatch 当成 polymorphic function 来写就行了。
The Little Schemer这本书挺有名,除了第九章的Y 组合子需要花点时间,其它的难度倒不是很大。 但它的后续版本,The Seasoned Schemer 和The Reasoned Schemer好像没它那么有名。 我不清楚的一点是,它后续篇的内容是不是,大部分在SICP里能找到? 谁给解释一下
不是,The Little Schemer 和 The Seasoned Schemer 还可以说是介绍通用的编程理念。后面的 The Reasoned Schemer, The Little Prover, The Little Typer 都是对一个特定的领域进行介绍,和 SICP 没有什么重复度(虽然这些书我都没怎么看过)
好的,非常感谢。这样的话,我先把 The Seasoned Schemer看完再继续SICP吧。听说,大部分人只学习到SICP的第三章。也就是说,后面两章过于理论化的原因?
个人觉得Little Schemer中讲applicative Y combinator的部分讲的并不好,这可能是出于对幼龄读者的一种理解上的处理,但是对于成年的读者来说其实没有很大的必要。
作为入门书籍(给大一计算机系新生或者有这方面兴趣的孩子)我觉得是很好的,但是对于成年读者专业读者来说,有些许啰嗦。
The Little Scheme的第九章写的确实不太好,我是看别的资料才明白Y combinator的。
另外,我对函数式的学习方法有些不理解的地方。
很多人推荐学习函数式开发,用Scheme或Lisp。但我认为,这个因人而异。因为,学习Scheme就涉及到RNRS之类的学习。对于,初学者是分不清这些和函数式开发有什么关系,浪费不少时间。并且,S表达式也不是函数式学习所必须的,虽然不是困难。学习一门新语言固然是好,但为了学函数式而去学一门语言,明显拉长了学习时间。
你说的是 JS 函数式开发,和函数式编程有什么关系么?
不都是从wiki上先学一下lambda calculus开始的么,应该是理论先行吧。。。
还是说我的路线出现了偏差。。。
一般不该从 cartiain closed category/simply typed lambda calculus 开始么,pure untype lambda calculus 对学现在多数编程语言没什么用。
啊!(一个啊字体现出了菜鸡无限的敬仰与懊悔)
原来是这样!
这正是我要表达的意思,若js已经很熟练了就用js,或者用其他比较熟悉的语言,不然搞不清学习的重点。
我也认为是理论优先,并用自己擅长的语言来实践,比较节省时间。