- (fun i_x state->
- let neighbors =
- List.map
- (fun d ->
- let off_x, off_y = offset d in
- (i_x + off_x), (i_y + off_y)
- )
- directions
- in
- let neighbors = filter_offsides width height neighbors in
- let states = List.map (fun (x, y) -> board.(y).(x)) neighbors in
- let live_neighbors = List.fold_left (+) 0 states in
- let state = new_state (state, live_neighbors) in
- state
+ (
+ fun x state->
+ let neighbors = neighbors x y |> filter_offsides w h in
+ let states = List.map (fun (x, y) -> board.(y).(x)) neighbors in
+ let live_neighbors = List.fold_left (+) 0 states in
+ new_state (state, live_neighbors)