Код: Выделить всё
type expr =
| Nb of float
| Add of expr * expr
| Soust of expr * expr
| Mult of expr * expr
| Div of expr * expr
| Opp of expr
let rec eval x = match x with
| Nb n -> n
| Add (e1, e2) -> (eval e1) +. (eval e2)
| Soust (e1, e2) -> (eval e1) -. (eval e2)
| Mult (e1, e2) -> (eval e1) *. (eval e2)
| Div (e1, e2) -> (eval e1) /. (eval e2)
| Opp n -> -. (eval n)
К сожалению, я не могу найти в Python ничего, что давало бы такую надежную гарантию, в том числе в системе типизации Python 10… Я что-то упустил?
Подробнее здесь: https://stackoverflow.com/questions/783 ... n-matching