X-Git-Url: https://git.xandkar.net/?p=cellular-automata.git;a=blobdiff_plain;f=polymorphism%2F001%2Fsrc%2Fpolymorphism.ml;fp=polymorphism%2F001%2Fsrc%2Fpolymorphism.ml;h=8d85a0eda861b42ddb5db2f858cc4ea9961bb39d;hp=62730e4457959cf013f49f52427f9952d252f10c;hb=31d923734f612795952158d003dc9e89fa5f17c7;hpb=77d0f9e1ea0f4e1ea131c0bde987ea25ad57d023 diff --git a/polymorphism/001/src/polymorphism.ml b/polymorphism/001/src/polymorphism.ml index 62730e4..8d85a0e 100644 --- a/polymorphism/001/src/polymorphism.ml +++ b/polymorphism/001/src/polymorphism.ml @@ -263,13 +263,13 @@ struct let create () = Random.int 2 |> State.of_int |> State.to_cell - let live_neighbors neighbors = + let count_of_live neighbors = neighbors |> List.map ~f:(State.of_cell_state |- State.to_int) |> List.fold_left ~init:0 ~f:(+) let transition ~self ~neighbors = self |> State.of_cell_state - |> State.next ~live_neighbors:(live_neighbors neighbors) + |> State.next ~live_neighbors:(count_of_live neighbors) |> State.to_cell end @@ -351,7 +351,7 @@ struct let create () = Random.int 3 |> State.of_int |> State.to_cell - let burning_neighbors neighbors = + let count_of_burning neighbors = neighbors |> List.map ~f:State.of_cell_state |> List.filter ~f:State.is_burning |> List.map ~f:State.to_int @@ -359,7 +359,7 @@ struct let transition ~self ~neighbors = self |> State.of_cell_state - |> State.next ~burning_neighbors:(burning_neighbors neighbors) + |> State.next ~burning_neighbors:(count_of_burning neighbors) |> State.to_cell end