diff options
| author | Marcos Magueta <maguetamarcos@gmail.com> | 2026-10-31 03:15:28 -0300 |
|---|---|---|
| committer | Marcos Magueta <maguetamarcos@gmail.com> | 2026-10-31 03:15:28 -0300 |
| commit | 55174a28581c33c4b6d91066086a2ee7b5c663ea (patch) | |
| tree | fedb78bf66dd114eedc358ca385cf5f01a65ae0e /lib/evaluators | |
| parent | a8cd08bfe473f01f245a4808e63809ed1cddc0e7 (diff) | |
| download | RNT-55174a28581c33c4b6d91066086a2ee7b5c663ea.tar.gz RNT-55174a28581c33c4b6d91066086a2ee7b5c663ea.zip | |
bencode helpers between dicts and string maps
Diffstat (limited to 'lib/evaluators')
| -rw-r--r-- | lib/evaluators/FOL.ml | 15 |
1 files changed, 3 insertions, 12 deletions
diff --git a/lib/evaluators/FOL.ml b/lib/evaluators/FOL.ml index a7685bd..01264e3 100644 --- a/lib/evaluators/FOL.ml +++ b/lib/evaluators/FOL.ml @@ -53,11 +53,7 @@ let rec bencode_of_term = ( 'w', Bencode.Dict [ "term", bencode_of_term term; - ( "binding", - Bencode.Dict - ( BatMap.String.bindings binding - |> List.map (fun (name, value) -> name, Concepts.Tuple.bencode_of_value value) ) ) - ] ) + "binding", Bencode.of_map Concepts.Tuple.bencode_of_value binding ] ) let rec term_of_bencode = let open Utilities.Result in @@ -74,15 +70,10 @@ let rec term_of_bencode = Ok (Project (term, BatFingerTree.of_list attributes)) | Bencode.Tagged ('w', data) -> let* term = Bencode.field "term" data |>> term_of_bencode in - let* binding = Bencode.field "binding" data |>> Bencode.as_dict in let* binding = - List.map - (fun (name, value) -> - Concepts.Tuple.value_of_bencode value |> Result.map (fun value -> name, value) ) - binding - |> Utilities.List.sequence + Bencode.field "binding" data |>> Bencode.to_map Concepts.Tuple.value_of_bencode in - Ok (Where (term, BatMap.String.of_list binding)) + Ok (Where (term, binding)) | _ -> Error (Error.malformed_program ()) let encode term = bencode_of_term term |> Bencode.to_bytes |> Bytes.to_string |
