aboutsummaryrefslogtreecommitdiffstats
path: root/research/experiments/030-app-lifecycle/items-body.aup
blob: dcb5477265fbfe061af03d267b1752b9f0ce0f78 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
record Pick {
  n = 0
}
record Item {
  n = 0
}
state items: list of Item
state more: list of Item
state hits = 0
input seed = message { n: number }
input grow = message { step: number }
input add = message { step: number }
on seed {
  items.append(Item { n: seed.n })
}
on grow {
  for i in items {
    more.append(Item { n: i.n + grow.step })
  }
  for m in more {
    items.append(Item { n: m.n })
  }
  for m in more {
    more.remove(m)
  }
}
on add {
  hits = hits + add.step
}
view count = count(i in items where i.n > 0)
view total = hits
view summed {
  let t = 0
  for i in items { t = t + i.n }
  return t
}
view picked {
  let ps: list of Pick
  for i in items {
    if i.n > 9 { ps.append(Pick { n: i.n }) }
  }
  return ps.count
}