Я хочу написать функцию, которая будет добавлять два элемента типа eval
type eval = Num of float | Neg | Add | Sub | Mul | Div;;
Компилятор OCaml выдает мне это предупреждение, но я не знаю точно, чего он хочет.Это работает, но я хочу сделать это без этого предупреждения.
# let (+++) (Num a) (Num b) =
match (Num a), (Num b) with
| (Add|Neg|Sub|Mul|Div), _ -> failwith "01"
| _, (Add|Neg|Sub|Mul|Div) -> failwith "02"
| _, _ -> Num (a +. b)
;;
Warning 8: this pattern-matching is not exhaustive.
Here is an example of a case that is not matched:
(Neg|Add|Sub|Mul|Div)
Warning 8: this pattern-matching is not exhaustive.
Here is an example of a case that is not matched:
(Neg|Add|Sub|Mul|Div)
val ( +++ ) : eval -> eval -> eval = <fun>