思考的时候,我会先把线性推理走在前面,这个做法像深度优先遍历。觉得无聊了,就会跳到平行的事情上去,这就变成广度优先了。在离散数学中,树是无环连通图,而图可以包含跨引用,和共享子表达式的非树依赖,如果放松单亲约束树就变成了有向无环图。专注力够的时候深度优先能发挥,资源有限的时候就广度优先。两种都会用上,用哪个取决于当时情境的第一反应。没有哪种更安心的说法。
结构会有一个起点,这个起点是根节点的位置。起点会指向动作。动作在编程语言里面,就叫函数或者方法。索引会指向动作,各种索引都列出来,放在入口里面。这个入口像建筑立面一样,设计模式中的外观模式描述了同样的结构,将内部复杂性封装在一个受控的接口后面。索引全部列举好之后,组织行动的工作就开始了。沿着这个思路来看,文章和代码在结构上是同构的。
目标明确的时候,把规划走在前头,高效地实现路径,这是很有效率的做法,而且只在目标明确的场景里好用。但目标不明确的场景里,只能把行动走在前头,不预设目标,进入探索状态。这种非目标行动在生活中比较少见。我对这种规划前置的思维也不完全满意。更自由的方式我想要的,把非目标行动的比例提高一下挺好的。计划的时间消耗可以脱离计划的束缚,成果能迫切地被看到,价值也能侧面地被创造出来。
先把前提定义清楚,再把动作执行出去,这种结构化方式逻辑上很顺。逻辑学中的实质条件式,将这一模式形式化为,如果前提满足则结论可以推进,霍尔逻辑则用前置条件、函数体、后置条件的三元组来刻画。和程序运行一样,前提准备妥当之后,函数调度出去。和写文章一样,背景铺垫足够之后,结论导出。和建建筑一样,基础打牢固之后,立面展示。这种结构思维,是认知框架的底层。
画布就像一个资源池,画画就是分配和修改资源。需要很多步,不断地添加、修改、删除,慢慢地接近完美的状态。这个迭代过程里,结构和内容会一起进化。结构变了,内容会跟着变。内容充实了,结构也可能会因此调整。双方互动的,不是单方向决定的。
参考文献
- Gamma, E., Helm, R., Johnson, R., & Vlissides, J. (1994). Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley. https://www.pearson.com/store/p/design-patterns-elements-of-reusable-object-oriented-software/P100000046522
- Parnas, D. L. (1972). On the criteria to be used in decomposing systems into modules. Communications of the ACM, 15(12), 1053–1058. https://doi.org/10.1145/361598.361623
- Goffman, E. (1974). Frame Analysis: An Essay on the Organization of Experience. Cambridge: Harvard University Press. https://archive.org/details/frameanalysisessa00goff
- Minsky, M. (1975). A framework for representing knowledge. In P. Winston (Ed.), The Psychology of Computer Vision. McGraw-Hill. https://dspace.mit.edu/handle/1721.1/6089
- 树结构 — Tree (data structure). Wikipedia. https://en.wikipedia.org/wiki/Tree_(data_structure)
- 图论 — Graph (discrete mathematics). Wikipedia. https://en.wikipedia.org/wiki/Graph_(discrete_mathematics)
- 抽象语法树 — Abstract Syntax Tree. Wikipedia. https://en.wikipedia.org/wiki/Abstract_syntax_tree
- 有向无环图 — Directed Acyclic Graph. Wikipedia. https://en.wikipedia.org/wiki/Directed_acyclic_graph
- 根节点 — Rooted Tree. Wikipedia. https://en.wikipedia.org/wiki/Tree_(graph_theory)#Rooted_tree
- 框架语义学 — Frame Semantics. Wikipedia. https://en.wikipedia.org/wiki/Frame_semantics