个人觉得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,或者用其他比较熟悉的语言,不然搞不清学习的重点。
我也认为是理论优先,并用自己擅长的语言来实践,比较节省时间。
为什么?能把 rnrs 搞清楚的人,还真是无聊
对于一个Scheme的初学者,开始学习的时候,很难分辨哪些需要学,哪些可以先放下。所以,会遇到很多的坎。使用,自己熟练的语言去学习,就省去这些麻烦。这是我一直迷惑,后来得出的个人看法。
同意一半:如果说学习一个概念,不一定要强行去某个语言的语境下学习,(在合适的情况下)也可以通过自己熟悉的语言学习。
不同意一半:学 Scheme 不需要学 rnrs,因为你是用各个实现来运行你的代码,而各家实现都加了自己的功能。了解 rnrs 和 srfi 唯一的用处就是在语言撕逼的时候你可以举出一些特性出来。根据我的观察,各家 scheme 实现的文档都可以用来入门。虽然我觉得入门 scheme 一下午拿着一本 The Little Schemer 就学完了。
The Little Schemer和它的续篇的内容,没有我说的语言上的顾虑问题,在某个Scheme的实现中实践就好了。至于,一个下午就能学完,对于一个初学者来说,我觉得有点夸张。除非已经有函数式开发的概念。这两本书看完之后,包括CISP也学完之后,用Scheme开发的话,又要学习哪些呢?这个才是我迷惑的地方。
比喻我用的是chez,[ Chez Scheme Version 9.5 User’s Guide ]就得花时间去看一下。并且,[ The Scheme Programming Language ]也得时不时去参考。这其实是学习函数式开发之外的东西。
若我用js的话,就可以直接在node下做实际的开发了。不用再去花时间去学习一套新的库(我把RNRS,chezscheme自己实现的库,都统称为库)。这些库,依存与Scheme的实现。有必要去学习吗?我不是反对什么思想,而是自己都迷惑,花时间在这上面,有什么收获呢?
我目前对RNRS和其它具体实现的理解,无非是通过Scheme语法实现的,而且功能上,别的语言都有现成的实现。除非超爱用Scheme去开发,对于只是学习函数式开发思想的人,我的想法还是用自己熟悉的语言比较好。
反正我是对Scheme的学习有点迷失方向了。
作为纯菜鸟, 我确实觉得 little schemer 里面 Y 组合子讲的很好. 我之前听过 Y 组合子, 所以看书的时候尝试自己写一下(并没有写出来, 捂脸). 书里的详细的过程恰好可以填补一些困惑.
做为用 Clojure 在工作生产创业搞了几年的人来说,其实 Clojure 真的挺好用的,虽然说学一个语言不一定要搞生产,但也没有说学一个语言一定不能搞生产。
Clojure 本身是一个很好的平衡点,放到工程里面来,如果想要宏,想要一致表达式形式,想要简洁的语法,它是个极佳的选择。或者回到 Lisp 当中,如果你想要生态,它则是 No.1 的选择。
我现在是把Common Lisp 搞生产了啊
吹一下 Land of Lisp…啥也不懂的时候读到的。其他能找到的资料都是名词名词名词名词文档文档文档文档,感到弱小可怜又无助。到Land of Lisp打开一看,哇这么多漫画,真的是巨友善。R18读物什么鬼 *咳咳…
我去年看过(只有外国有得卖 而且要近百美元 挺贵啊 好在有pdf)
可惜这辈子真本书都不会有中文版😭