Última atividade 1 day ago

An example of turning an isolated state machine into multiple.

june's Avatar june revisou este gist 1 day ago. Ir para a revisão

1 file changed, 5 deletions

multistate.nv

@@ -33,11 +33,6 @@
33 33 |:: $machine is running? :: $action|
34 34 :action: $action
35 35
36 - |:: $action :machine: $machine?|
37 - :: unpack machine $machine :action: $action
38 - :: repack machine $machine
39 - :: reset machines
40 -
41 36 |:: unpack machine $x :machines: $x $state|
42 37 :state: $state
43 38 |:: unpack machine $x? :machines: $y $state|

june's Avatar june revisou este gist 1 day ago. Ir para a revisão

Sem alterações

june's Avatar june revisou este gist 1 day ago. Ir para a revisão

1 file changed, 54 insertions

multistate.nv(arquivo criado)

@@ -0,0 +1,54 @@
1 + |# A turnstile, a state machine. #|
2 +
3 + |:state: locked :action: push| :state: locked
4 + |:state: locked :action: coin| :state: un-locked
5 +
6 + |:state: un-locked :action: push| :state: locked
7 + |:state: un-locked :action: coin| :state: un-locked
8 +
9 +
10 +
11 +
12 + |# I want/need multiple machines. #|
13 +
14 + ||:: create machine entrance :state: locked
15 + :: create machine exit :state: locked
16 + :: as entrance do
17 + :: (push coin push)
18 + :: end
19 + :: as exit do
20 + :: (coin push push coin)
21 + :: end
22 +
23 + |:: create machine $x :state: $state|
24 + :machines: $x $state
25 +
26 + |:: as $machine do|
27 + :: unpack machine $machine
28 + :: $machine is running
29 +
30 + |:: $machine is running :: end|
31 + :: repack machine $machine
32 + :: reset machines
33 + |:: $machine is running? :: $action|
34 + :action: $action
35 +
36 + |:: $action :machine: $machine?|
37 + :: unpack machine $machine :action: $action
38 + :: repack machine $machine
39 + :: reset machines
40 +
41 + |:: unpack machine $x :machines: $x $state|
42 + :state: $state
43 + |:: unpack machine $x? :machines: $y $state|
44 + :checked machines: $y $state
45 + |:: unpack machine $x|
46 + :not found: $x
47 + :: reset machines
48 +
49 + |:: repack machine $x :state: $state|
50 + :machines: $x $state
51 +
52 + |:: reset machines? :checked machines: $name $state|
53 + :machines: $name $state
54 + |:: reset machines|
Próximo Anterior