·
JavaScript,PHP,Qt C++,Unity C# 喜欢反复重构自己的代码、尽力让代码思路清晰。 喜欢人工智能。但对人工智能算法了解不多,正准备学习。 喜欢写长篇的、逻辑完整且清晰的文档,不喜欢口头交流。 喜欢有充足的时间,自由的思考、自由的决定自己做什么。无业,不就业,无经济压力。 喜欢玩策略游戏,例如《异星工厂》《群星》《国标麻将》。不喜欢动作游戏。

第一章:定义

1.1:为什么我们需要定义?

1.1.1:替换式定义

有这样一个经典的问题:

把大象装进冰箱需要几步?
三步。
第一步,打开冰箱门。
第二步,把大象放进去。
第三步,把冰箱门关上。

现在来定义:

定义操作【编号01】:
第一步,打开冰箱门。
第二步,把大象放进去。
第三步,把冰箱门关上。

此时,把大象装进冰箱需要几步?只需要一步:执行编号01的操作。

1.1.2:抽象定义

把老虎装进冰箱需要几步?三步。

如果要想只用一步,那么就需要定义编号02的操作。

但是你会发现,编号02与编号01的操作很像。因此我们可以定义一个抽象的操作:

定义操作【编号03】,参数为【物体X】:
第一步,打开冰箱门。
第二步,把物体X放进去。
第三步,把冰箱门关上。

此时,把老虎装进冰箱需要一步:执行编号03的操作、参数为老虎。

并且,未来把任何东西装进冰箱,都只需要一步,不需要再定义新的操作。