Newer
Older
AlgebraicDataflowArchitectureModel / AlgebraicDataflowArchitectureModel / models / VotingSystem.model
channel Signup {
	out accounts(acDB:Map, signUp(aid:Str, name:Str)) = insert(acDB, aid, {"name": name, "vote": null})
}

channel Cast(aid:Str) {
	out accounts.{aid}.vote(preV, cast(v:Str)) = v
}

channel Collect {
	for EachAccount(aid:Str) {
		in accounts.{aid}.vote(preV:Str, collect(m)) = m.{aid}
	}
	out counts(preCnts:Json, collect(m)) = m
}