func rule110_step[state: array] : array let new_state: array = [] let state_len: i64 = array.size(state) for i in 0..state_len 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 < state_len right = array.nth(state, i + 1) array.push(new_state, !((!left & !center & !right) | (left & !center & !right) | (left & center & right))) return new_state func print_state[state: array]: void for i in 0..array.size(state) if array.nth(state, i) io.print_char('#') else io.print_char(' ') io.println("") func main[] : i64 let SIZE = 60 let state: array = [] for i in 0..SIZE array.push(state, false) array.push(state, true) print_state(state) for i in 0..SIZE state = rule110_step(state) print_state(state) array.free(state)