Skip to content

Commit 68ad274

Browse files
committed
[mimor] 2 Design Principles
1 parent 575218b commit 68ad274

File tree

2 files changed

+45
-1
lines changed

2 files changed

+45
-1
lines changed

TODO.md

-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
# mimor
22

3-
[mimor] 2 Design Principles
43
[mimor] 3 Core Implementation
54
[mimor] 4 Dependencies
65
[mimor] 5 Expressive Power

docs/mimors/propagator-networks.mimor

+45
Original file line numberDiff line numberDiff line change
@@ -45,5 +45,50 @@
4545

4646
<答>
4747
Actor Model。
48+
49+
用 actor 实现 propagator,
50+
正如用图实现二分图,毕竟二分图也是特殊的图。
4851
</答>
4952
</问>
53+
54+
<填空>
55+
Propagator 是异步的(Asynchronous),
56+
自治的(Autonomous)且<空>无状态的(Stateless)</空>。
57+
</填空>
58+
59+
<问>
60+
如何理解 Propagator 是无状态的(Stateless)?
61+
62+
<答>
63+
Propagator 本身是纯函数,所有的状态都保存在 cell 中。
64+
65+
状态总是不可避免地与时间有关。
66+
</答>
67+
</问>
68+
69+
<问>
70+
如何理解 Propagator 是自治的(Autonomous)?
71+
72+
<答>
73+
Propagator 时刻准备着进行计算,不需要任何前提条件。
74+
</答>
75+
</问>
76+
77+
<问>
78+
如何理解 Propagator 是异步的(Asynchronous)?
79+
80+
<答>
81+
一个 propagator 可以随时进行其计算,
82+
没责任去与其他 propagator 在时间上相互协调。
83+
</答>
84+
</问>
85+
86+
<填空>
87+
尝试从逻辑上推理出来,为什么应该保存 partial information。
88+
89+
- 大前提:多个 propagators 可以向同一个 cell 中赋值。
90+
91+
- 小前提:<空>多个值之间可能没有全序关系来判读谁好谁坏</空>。
92+
93+
- 结论:应该用偏序关系与 lattice,来 merge 多个值。
94+
</填空>

0 commit comments

Comments
 (0)