I have a very simple initialization for a function as follows:
sampleTableINIT ==
sampleTable = [person \in group |->
[
status |-> "Active",
divisions |-> {[assignedDivision |-> division] : division \in getDivisions(person)}
]]
Here is a sample result from the definition:
[Sam :> [status |-> "Active", divisions |-> { [assignedDivision |-> "Sales"]]
[Mary :> [status |-> "Active", divisions |-> { [assignedDivision |-> "Sales"], [assignedDivision |-> "CS" }]
What I'd like to accomplish is simple: Per person entry, I'd like to assign an ID per division. The result below is what I want:
[Sam :> [status |-> "Active", divisions |-> { [id |-> 1, assignedDivision |-> "Sales"]]
[Mary :> [status |-> "Active", divisions |-> { [id |-> 1, assignedDivision |-> "Sales"], [id |-> 2, assignedDivision |-> "CS" }]
Order on ID assignment does not matter. Is there an easy way to do this rather than mutating the function in a future state?