Yan He

He is a Recreator

Page 5


Positioning SICP 3: Modularity, Objects, and State

Positioning SICP 3: Modularity, Objects, and State

作者:何岩,recreating.org出品,谢绝转载。
阅读SICP,站在Lisp发明者的上帝视角来思考:“我为什么要这么设计Lisp?”

0.前言:Why I design those concepts—Modularity, Objects, and State?为什么我要设计模块化,对象和状态这些概念?

为了,更简单的模拟物理世界。
我们看世界的视角有两种:
1)将世界看成由彼此对立的物质对象组成,即,Object View
2)将世界看成彼此始终相互作用的信息流构成,即,Stream View
虽然真实的世界是Stream的。但是如果我们人脑用Stream View很难理解和模拟试卷,所以为了简化,降低人脑负荷,我们采用Object View来简化的模拟真实世界。

而,我们生下来被教育的也正是Object View,对象世界观,我们都习惯于此,误以为真实的世界就真的只是Object组成,却不知道,还有另一种看世界的方式Stream View,而,佛经里的世界观就是Stream View,所以很难理解,但是又那么自洽。

我们用代码来对比一下Object view和Stream View,给自己找点感觉先:
有这样一个需求:银行账户account,取款withdraw,显示余额balance。
1)Bank Account with Object View
(define balanc 100)

(define (withdraw amount)
(if (>= balance amount)
(begin (set! balanc (- balance amount))
balance)
“Insufficient funds”))
2)Bank Account with Stream View
(define (stream-withdraw balance...

Continue reading →


Positioning SICP 2: Building Abstractions with Data

Positioning SICP 2: Building Abstractions with Data

作者:何岩,recreating.org出品,谢绝转载
阅读SICP,站在Lisp发明者的上帝视角来思考:“我为什么要这么设计Lisp?”

0.前言:Why I design the concept of Data? 为什么要设计Data这个概念?Procedure不够用吗?

因为,control complexity。
因为,人脑习惯Object View,需要让人们产生Data这个Object想象体。这样可以降低思考复杂度。
因为,Object/Data的抽象思想是Black-Box Abstraction,也可以称为modularity。modularity可以降低复杂度,因为,modularity减少了关系发生的数量。
因为,统一视角,抽象思维,type的本质。例如:Java中的接口
Procedure is Stream View
Data is Object View

Chapter 2.1 Introduction to Data Abstraction

1.How I design the implementation of Data?我如何设计Data的实现?

— Chapter 2.1.3 What Is Meant by Data?
我将用Procedures来虚拟出Data。
Data对外提供可以被感知到的是一层interface,interface的本质就是procedure。
用户就会想象,Data貌似真的存在。
其实,那些作为interface的procedure也是由更底层的procedure组成的。
例如,用procedure来模拟Pairs的存在
为了欺骗使用Pair的人,我会提供Cons/Car/Cdr这三个Procedures作为interface。
使用Pair的人会这么操纵Pair暴露的interface:cons/car/cdr:
=>(define x (cons 1 2)...

Continue reading →


Positioning SICP 1: Building Abstractions with Procedures

Positioning SICP 1: Building Abstractions with Procedures

作者:何岩,recreating.org出品,谢绝转载。
阅读[SICP],站在Lisp发明者的上帝视角来思考:“我为什么要这么设计Lisp?”

0.前言

本系列为Recreating Lisp的准备阶段。因为,硬核知识要基于SICP,所以,我需要一边读SICP一边构建“纯”定位体系。
文字就像是线,串起来的珍珠就是SICP中的Lisp代码。
所以,这本书的创造,换句话说,就是面向代码定位,而非面向概念。
第一本书是面向概念定位,因为概念容易描述清楚。
而本书很难面向概念定位,因为SICP是将如何编程的,很难之用文字描述清楚,代码的描述是最客观的。所以,这也决定了,这个书更适技术背景的读者。

WHAT - 本系列写的是什么?
定位,定位概念体系,定位Lisp的概念体系,定位为什么Lisp如此设计?以及,为什么这么使用Lisp来构建抽象?

WHY - 为什么要写定位?
1.因为,让自己站在创造者的视角,用自己的眼睛看世界,用自己的语言表达一遍SICP中讨论的各种概念,才能真懂。
2.另外,SICP的文字的并不是面向定位的,所以比较难看出结构来,而我的文字目的就是要表达定位,所以我的文字的价值能有倾向性。

HOW - 我如何写?
1.我要站在Lisp发明人的上帝视角不断的提问:“我为什么要设计这个概念?(Why I design this concept?)”
2.通过问题来引出SICP中的代码实现。
3.再即兴的加入感悟的文字,关联其他领域,例如:Bitcoin,哲学等生活体验。
4.最终呈现一个概念体系,体系的核心是Lisp。

1.Why - 我为什么要创造Lisp这个高级编程语言?

为了构建抽象。
写到第二篇产生的感悟是:为了构建复杂,但是由于脑力限制,我们还要控制复杂。所以,编程就是既要构建复杂,又要控制复杂。解决的方法就是:抽象。

WHY - 为什么构建抽象?
为了模拟真实世界。

WHY - 为什么要模拟真实世界?
更高效的处理...

Continue reading →


Learn by Positioning

Why?为什么要Learn by positioning?

因为,做定位,就是讲读到的知识挂接到我的概念体系中。
我们只能真的理解,属于我们概念体系里的东西。
外界的知识,我们可能记得,但是不能真的理解。
这就是,为什么记得那么多道理,却依然不会用。

How?对于学习/看书的指导意义是什么?

1.每次学习一本书,要开一个读书笔记的系列。
2.补充书中缺少的WHY,用WHY将书中的概念挂接到自己的概念体系中。
3.因为,WHY是我们自己问出来,必然是基于我们的概念体系。
4.挂接过程:我们的概念体系 —> WHY?(我们提出的问题) —> 书中概念(作者的答案)

What?这一切的本质是什么?

1.理解的载体是关系。
2.关系比对象更有质量。
3.关系才是信息的载体,而非对象内部的状态。

View →


事是做出来的

1.WHAT流行观念事什么?

大多数人的观念事,事是计划出来的,先要知道如何做,才能开始去做,否者不敢行动,所以大多数人一辈子都在安全的等待中度过。
如果你问一个人,你真正想干的是什么?
他会说,我想成为一个作家。
你问什么不去做呢?
因为成为作家对我来说太难了,我没有基本功。我不知道写什么,即便我知道了想要写的主题。我也不知道如何构建一本书。这太难了。我还没准备好。如果我写不出来一本书怎么办?如果我写出来了,没有出版社给我出版怎么办?如果出版社出版了,卖不出去怎么办?我如果想要成为全职作家,得辞职,如果我赚不到钱怎么办?
看看,这些思维的底层假设就是:“我只敢去做确定性的事,所以我要看清了计划,才能开始行动”
这种假设就是一种世界观,即,精确系统的世界观。
如果用爬山来隐喻,精确系统的世界观就是依赖精准的地图才敢行动。
而,另一种与之截然不同的复杂系统的世界观,则是只需要指南针。

2.WHAT另一种相对观念是什么?

另一种完全不同的观念是:我不知道,但是我选择先做起来,试试看。
我只知道大致的方向,我不用知道我会遇到的具体小问题是什么。我甚至不知道如何解决那些可以遇见的问题。我只有走到眼前,摸到了石头,看到了石头的纹理,才能知道踩到哪里,手抓到哪里,翻过去,还是绕过去。
最坏的一种情况是,真的过不去,那么我就宣布自己失败,放弃这条路,再选一条别的路重新开始即兴的探险。我们不必每次都成功走到山顶。享受爬山的本身才是目的,走了一半,兴尽而归,未尝不是另一种美好。
事是做出来的,摸到问题纹理之前,我不可能知道如何解决。甚至是摸到了纹理,我也要用身体去尝试,试着试着也许就过去了。

我们的大脑很强悍,但那是面对真实的问题的当下时刻。
里的太遥远,我们的大脑就是一个白痴。
这就是另一种世界观,复杂系统世界观。

3.我遇到的情况

我想要写第二本书,将SICP重构,我来添加定位,得到全局定位感。
我不知道如何写。但是我开始行为了。
我会写读书笔记。就像今天,我遇到的灵感:“原来我的工作本质是,定位。”
所以,定位才是我的热狗,故事只是番茄酱。
我很开心,解决方案就像自动...

Continue reading →


Recreating SICP 1:从一个计算器开始

作者:何岩,禁止转载。

0.前言

你知道MIT计算机专业的第一门课是什么吗?
那就是SICP(Structure and Interpretation of Computer Programs)
SICP被评为是一本神书。两位作者就像是炼金术士,将自己对计算机科学的真知灼见浓缩在不算厚的SICP之中。
虽然看上去SICP文字不多,但是信息量极大。很多我们常见的争论议题,例如面向对象和面向函数之争,SICP只需要几行文字就能点到本质。看完之后总有一种“原来这个问题的本质是这样!”的恍然大悟。然后才知道,之前的自己只是以为自己懂了。
SICP如此伟大,确少有人读,可谓最被忽略的宝藏。
我将用故事的形式,将其重新开采。
希望通过这个系列,让你可以“看见”SICP的光辉。

故事的主角来自神剧:Rick & Morty

1.png

1.Rick & Morty

Morty家的车库是Rick的工作室。

Rick是全宇宙最聪明的科学家,大部分时间都在这里鼓捣他的发明创造。

Morty是他的外孙,身体总是软绵绵的,和他的智商一样让人觉得不可靠。

木头桌子前,Rick盯着电脑屏幕,用鸡爪一样的双手,敏捷的敲打着键盘。

电脑的另一端连着一个发光的立方体。

Morty指着立方体问:“Hi Rick,这是你的新发明吗?”

“这是我造的小宇宙,它可以像电池一样给我的太空船供电” Rick说

“现在它有点不正常,从外面看不出问题,得进去看看。”Rick拿出两支类似蓝牙耳机的设备:“来Morty,把这个插在耳朵里,用它可以进入小宇宙,它的名字叫做:MI(意识转换器,英文全称:Mind Interpreter)”

Morty看着手中的MI,心想为什么啥事都要拉上我,本来还想看会电视。

两人同时按了一下耳朵上的MI,便失去意识,倒在了地上。

2.BUG来自GC(垃圾回收器)

Rick和Morty在一家咖啡馆醒来,墙上写着“Recreating Cafe”。

牛头人端着咖啡走过来:“Rick,你可来了!最近这里发生了一些特别可怕的事情。”

2.png

牛头人是宇宙联邦的一级通缉犯,为...

Continue reading →


我的文章列表

简书地址:

https://www.jianshu.com/u/90e25f96d392

presson地址:

https://press.one/main/p/bf73b3af4938b627384449cdf62c87f1c65cfba9

douban地址:

https://www.douban.com/people/heyan305/

View →


未来我的资产会超过一个亿人民币

自证预言,只要你相信一个事情,世界就会帮你实现他,那么我已经相信未来我的资产会超过一个亿人民币,我感觉是在5年内。立下flag,看看何时实现。

https://press.one/p/address/v?s=7015c76068d8893feb521e53837414d471ebb46d978428808848f5e8aa47a0c26f6641d9bdf0cb57f2443d25d7b1118309a8e70871734888af3e7751543eed6f0&h=73c6128ffc12ebfe970a41e723acad54fd696a2e8e933ee0d2970c95d8bfd55d&a=bf73b3af4938b627384449cdf62c87f1c65cfba9&f=P1&v=2

View →


编码的奥秘

Sayings

今天终于把编码的奥秘这本书读完了,这本书给我的感觉非常好。这就是我要找的那类书!
编码的奥秘给让我印象深刻的有以下几点:
1.计算机一些最核心的概念

2.概念成体系

3.概念的由来解释的很细致,绝不空降一个概念来让你死记硬背。

本书简直就是一步计算机的进化史。由最开始的一个部件“继电器”,利用继电器的组合出多个逻辑门。再由不同逻辑门的组合实现了加法器,锁存器,计时器。再由这些部件进化出来内存,处理器。再发明了硅片将这些部件固定在硅片上形成了芯片。再由总线连接芯片和外部设备,形成了计算机。针对处理器的机器码程序如何演变出汇编语言。再由汇编语言构建出了操作系统。再到由汇编语言演变出高级语言。
本书构建了一个计算机世界的框架图,就像一个坐标系一样,让我们以后遇到的所有技术知识都有个坐标可以参照。

以后希望能再看到这种类型的书。

转一个豆瓣上的书评:

[转]-地基上的脚印-读《编码的奥秘》有感

作者:canco

   屈指算来,这几年看过不少计算机书籍,根据经济学中的边际效益递减原理,读书带来的知识的增加和智力的乐趣开始减少,于是自然形成了看书的几个原则。写得晦涩难懂得的书不看。人生的时光宝贵,把时间浪费在研究难懂或错误的书籍上实在不值。爱因斯坦曾说过,用复杂的理论解释事实,成功的机会为零。书写得晦涩难懂,估计作者也没弄懂,这样读者更是觉得云山雾海的。我喜欢读通俗易懂的书。书中要有新的思想或新的技术,能给人带来智力上的乐趣。书要深入浅出地讲述,从历史到现在,挖掘技术的来龙去脉,这样才能真正理解技术或理论。工程实用的书应该非常详细具体,让人很容易上手实践。这就是《编码的奥秘》吸引我的原因。我幸运得象个孩子,找到了这个庞大而有神秘的建筑物的秘密通道,找到了地基,在上面发现了脚印,揭开了神秘的面纱。

  
   你是否想知道计算机如何工作和运行的?你是否想了解计算机是如何一步一步创造出来的?你是否想了解计算机知识的来龙去脉?你是否想了解计算机的历史?你是否想制造出一台自己的计算机?你是否想知道硬件与软件的区别?你是否想知道电报机、电的原理?你是否想...

Continue reading →


305十年再相聚

2104年十一期间,305相聚在北京,happy的度过了美好的假期。

IMG_3200.JPG
十年前的305,在长春理工寝室后面的树林子里。

IMG_3376.JPG
现在的305,在国家大剧院音乐厅。

第1天-胖子驾到,老朱请吃铁板烧

IMG_3183.jpg
胖子从哈尔滨做火车到达我们的小寝室。胖子还是那么…你懂得~~

IMG_3192.jpg
然后都到我家,等老朱,挫进我小猫~

IMG_3208.jpg
老朱姗姗来迟,结果遭到胖子撕咬,还是那么销魂。

IMG_3210.JPG
俩人进屋就开始吃,还叼着蛋卷当雪茄,吊丝啊。

IMG_3212.JPG
胖子弹钢琴

IMG_3217.JPG

我和胖子

IMG_3222.JPG
到了中午,老朱由于迟到啦,所以请我俩吃铁板烧。吃得猛了点,把老朱心疼坏了。

IMG_3230.jpg
胖子睡觉咋这么放荡。

IMG_3227.JPG
老三发现了胖子的巨大魅力,目不转睛的照相中。

IMG_3236.jpg

晚上回到寝室,第一天就这么结束啦。

第2天-等待坛子和磊子到来

IMG_3255.jpg
起来就荡秋千,装忧郁的男淫。

IMG_3268.JPG
在楼上有个活动室,哥找的地方好吧,打了一上午游戏 。

IMG_3277.jpg
晚上坛子做飞机从广州到北京,香港仔啊。

IMG_3290.JPG
大飞晚上来找我们吃饭,与危险动物合影。

IMG_3293.jpg
我们坐着专车来到烤串店

IMG_3303.JPG
磊子从广州飞到北京打车来饭店,305终于相聚啦!

IMG_3304.JPG
胖子看到小鲜肉,立即变成嗜血状态,看那眼神!

IMG_3306.JPG
吃了一晚上,一直迟到凌晨,回家睡觉,这一天就这么过去啦。

第3天-白天dota,晚上听音乐会

IMG_3314.JPG
白天一直dota

IMG_3316.JPG
晚上路边找个拉面吃了一口就去国家大剧院了

IMG_3319.jpg
来到国家大剧院听音乐会
IMG_3343.JPG
专注的听

IMG_3347.jpg
305合影
IMG_3368.JPG

IMG_3376.JPG
音乐会还不错,打击乐,效果很好,打击乐能够比较容易的吸引听众的注意力,大家听完一致好评,这让我很开心!

IMG_3380.JPG
坐地铁回寝室,坛子发现了荔枝饮料,非要喝

第4天-打羽毛球,逛798

IMG_3387.JPG
早上起床,我们商量了下行程,先去我家打羽毛球,再去我家旁边的火锅店吃火锅,再去798照相。

IMG_3389.JPG

坛子和胖子喝着北京特色汽水,北冰洋,这几天我们喝得都爱上这汽水了,买了一大箱子放到寝室里。

IMG_3404.JPG
早上在老北京胡同里溜达着去吃早饭。我们寝室十找在了2环里,雍和宫附近的一个青年旅社,所以周围都是老北京四合院,很有感觉。

IMG_3410.JPG
来到了包...

Continue reading →