Better styling for miniFun

This commit is contained in:
elvis
2025-01-27 00:18:23 +01:00
parent 6d5587692c
commit 5e8b339440
3 changed files with 38 additions and 32 deletions

View File

@ -5,14 +5,17 @@ Random.self_init ()
let (let*) = Result.bind
let rec evaluate (mem: memory) (command: t_exp) : (permittedValues, [> error]) result =
let rec evaluate (mem: memory) (command: t_exp) :
(permittedValues, [> error]) result =
match command with
Integer n -> Ok (IntegerPermitted n)
| Boolean b -> Ok (BooleanPermitted b)
| Variable v -> (
match VariableMap.find_opt v mem.assignments with
None -> Error (`AbsentAssignment ("The variable " ^ v ^ " is not defined."))
| Some a -> Ok a
| None ->
Error (`AbsentAssignment ("The variable " ^ v ^ " is not defined."))
| Some a ->
Ok a
)
| Tuple (x, y) -> (
let* xval = evaluate mem x in