From 741f88ab405995003eb6e9f301d3b065c1e84a4a Mon Sep 17 00:00:00 2001 From: Sébastien Dailly Date: Fri, 28 Jan 2022 14:44:57 +0100 Subject: Added a motus solver --- motus/js/updateProposition.ml | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 motus/js/updateProposition.ml (limited to 'motus/js/updateProposition.ml') diff --git a/motus/js/updateProposition.ml b/motus/js/updateProposition.ml new file mode 100644 index 0000000..ab10db3 --- /dev/null +++ b/motus/js/updateProposition.ml @@ -0,0 +1,24 @@ +(** Update the current propositions when the user change a value in one of the + field. + *) + +open StdLabels + +type t = + { position : int + ; letter : Jstr.t + ; validity : State.letter_validity + } + +let process { position; letter; validity } state = + let current_prop = + List.mapi state.State.current_prop ~f:(fun pos' content -> + if position <> pos' + then content + else if Jstr.is_empty letter + then None + else Some (Jstr.uppercased letter, validity) ) + in + FieldList.set_with_props current_prop state.fields state.rules; + + { state with current_prop } -- cgit v1.2.3