home
/
code
/
cellular-automata.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
A more sensible way to count.
[cellular-automata.git]
/
polymorphism
/
001
/
src
/
polymorphism.ml
diff --git
a/polymorphism/001/src/polymorphism.ml
b/polymorphism/001/src/polymorphism.ml
index
0444595
..
ab2cbd5
100644
(file)
--- a/
polymorphism/001/src/polymorphism.ml
+++ b/
polymorphism/001/src/polymorphism.ml
@@
-211,7
+211,7
@@
struct
val of_int : int -> t
val of_int : int -> t
- val
to_int : t -> int
+ val
is_alive : t -> bool
val to_cell : t -> Cell.t
val to_cell : t -> Cell.t
@@
-227,9
+227,9
@@
struct
| 1 -> A
| _ -> assert false
| 1 -> A
| _ -> assert false
- let
to_int
= function
- | D ->
0
- | A ->
1
+ let
is_alive
= function
+ | D ->
false
+ | A ->
true
let to_pheno = function
| D -> PhenoType.create ' ' None
let to_pheno = function
| D -> PhenoType.create ' ' None
@@
-265,8
+265,8
@@
struct
let count_of_live =
List.map ~f:State.of_cell_state
let count_of_live =
List.map ~f:State.of_cell_state
- |- List.
map ~f:State.to_int
- |- List.
fold_left ~f:(+) ~init:0
+ |- List.
filter ~f:State.is_alive
+ |- List.
length
let transition ~self ~neighbors =
self |> State.of_cell_state
let transition ~self ~neighbors =
self |> State.of_cell_state
@@
-285,8
+285,6
@@
struct
val of_int : int -> t
val of_int : int -> t
- val to_int : t -> int
-
val to_cell : t -> Cell.t
val of_cell_state : Cell.State.t -> t
val to_cell : t -> Cell.t
val of_cell_state : Cell.State.t -> t
@@
-307,11
+305,6
@@
struct
| 2 -> B
| _ -> assert false
| 2 -> B
| _ -> assert false
- let to_int = function
- | E -> 0
- | T -> 1
- | B -> 2
-
let to_pheno = function
| E -> PhenoType.create ' ' None
| T -> PhenoType.create 'T' (Some `green)
let to_pheno = function
| E -> PhenoType.create ' ' None
| T -> PhenoType.create 'T' (Some `green)
@@
-355,8
+348,7
@@
struct
let count_of_burning =
List.map ~f:State.of_cell_state
|- List.filter ~f:State.is_burning
let count_of_burning =
List.map ~f:State.of_cell_state
|- List.filter ~f:State.is_burning
- |- List.map ~f:State.to_int
- |- List.fold_left ~f:(+) ~init:0
+ |- List.length
let transition ~self ~neighbors =
self |> State.of_cell_state
let transition ~self ~neighbors =
self |> State.of_cell_state
This page took
0.028501 seconds
and
4
git commands to generate.