func rule110_step[state: Array] : Array let new_state: Array = [] for i in 0:Array.size(state) let left: Bool = false if i - 1 >= 0 left = Array.nth(state, i-1) let center: Bool = Array.nth(state, i) let right: Bool = false if i + 1 < Array.size(state) right = Array.nth(state, i+1) Array.push(new_state, !((!left && !center && !right) || (left && !center && !right) || (left && center && right))) return new_state func to_str[state: Array]: String // TODO: very leaky let o: String = "" for i in 0:Array.size(state) if Array.nth(state, i) o = String.concat(o, "#") else o = String.concat(o, " ") return o func main[] : I64 let SIZE: I64 = 60 let state: Array = [] for i in 0:SIZE Array.push(state, false) Array.push(state, true) print(to_str(state)) for i in 0:SIZE state = rule110_step(state) print(to_str(state))