回应模式 - No.55666696


No.55666696 - 科学


争取周更DaoFP 翻译串No.55666696 只看PO

2023-02-18(六)16:20:39 ID:maxLY6f 回应

《函数式编程之道》 by Bartosz Milewski

https://github.com/BartoszMilewski/DaoFP

(Po 既非计算机专业亦非数学专业,对范畴论/类型论只有一些粗浅的知识,欢迎指出问题/讨论)

无标题无名氏No.55667541

2023-02-18(六)16:58:14 ID: maxLY6f (PO主)

然后说说我对这个书的看法,我现在跳着看了大概1/3,写的非常好,算是编程+范畴论里少数我看的下去的书(ctfp我就没看下去)

这个书实际上采用了一种完全不同于其他范畴论教科书的编排方法,并不是从抽象的范畴概念开始,而是从某一类非常具体的范畴(应该是叫局部小笛卡尔闭范畴)开始,逐渐建立一套能和Haskell接轨的类型系统(其实不能说建立,因为这个范畴就是那个类型系统)
这种编排方式让我想起了高中学集合的时候,高中书是从“一个班里的同学”“若干个数”中逐步抽象出来集合的概念——类比各种范畴论书从群-同态、集合-映射中抽象出来范畴概念,将范畴放在了相当抽象的位置,对我来说这个曲线有点陡峭了;
这本书将范畴论放在了更基础的位置,有点像是纯粹集合论里0等于空集,1={0} blabla,这一点我很喜欢,不过问题就是前几章可能不太严谨,就当是培养直觉了,后面有严谨的地方

这本书另一个非常吸引我的地方就是内容确实和“道”非常贴合,选取的视点也非常有哲学感,引人深思;不过小肥我语文一直不得行,很多地方逐字译出超出了我的能力,所以主要是意译,这一点欢迎指正

最后推荐几本延伸读物:
- http://www.brendanfong.com/programmingcats.html
DaoFP的作者是这门课的三个老师之一,课程材料相当于DaoFP的姊妹篇
- The little typer
神书,中学英文就能读懂所以没翻这个

无标题无名氏No.55667768

2023-02-18(六)17:09:28 ID: K8jTcIb

>>No.55667541
比个大母猪 ゚∀゚)b

无标题无名氏No.55668347

2023-02-18(六)17:35:36 ID: K8jTcIb

看完了,感觉有点意思。
虽然我没学过lisp或者Haskell,但是前几年函数式编程在工程领域非常流行,所以就粗略了解了一些思想,现在工作中有很大一部分内容,也是基于函数式编程的框架来做的。
实际的工程领域,我感觉函数式编程通常用来解决过程编程处理起来比较复杂的问题,例如分布式计算,例如异步处理等。
而在我的理解上,这些函数式编程框架更多的是把巨大而复杂的逻辑隐藏在了框架之下,写的时候有多爽,debug的时候就有多痛苦。函数式编程在解决了一些问题的时候,带来了其他的问题,而且带来的问题隐藏在巨大的框架之内,为了解决问题,我们要去学习整个巨大的框架的每一处细节。

无标题无名氏No.55703748

2023-02-20(一)09:00:18 ID: maxLY6f (PO主)

更新了第三章

3.3 是比较抽象的,作者编排内容的逻辑我也有点迷,总之理解这样几条就 OK 了:

1. 物件的性质完全由箭头决定(“人是一切社会关系的总和”);
2. “观测箭头”构成集合;集合间的映射(如果满足自然律)可以切换观测视角或者观测对象;
3. 如果有一个这样的箭头间映射,那么将其作用于单位态射(自己观测自己的箭头)就能得到一个同构关系;每个同构关系也对应一个满足自然律的箭头间映射。

这一段确实相当绕,不过很快第四章就很具体了,而且第四章就真正开始编程的内容了。

无标题无名氏No.55703753

2023-02-20(一)09:00:37 ID: maxLY6f (PO主)

分享图片

无标题无名氏No.55703756

2023-02-20(一)09:00:54 ID: maxLY6f (PO主)

分享图片

无标题无名氏No.55703761

2023-02-20(一)09:01:12 ID: maxLY6f (PO主)

分享图片

无标题无名氏No.55703766

2023-02-20(一)09:01:36 ID: maxLY6f (PO主)

分享图片

无标题无名氏No.55703769

2023-02-20(一)09:01:56 ID: maxLY6f (PO主)

分享图片