tôi đã xác định một số loại:Chức năng quá tải trong OCaml
type box = Box of int
type table = Table of int
type compare_result = Lt | Eq | Gt
Dường như trong OCaml, chúng ta không thể xác định 2 chức năng cùng tên nhưng khác kiểu của đối số:
let compare (a: box) (b: box): compare_result = (...)
let compare (a: table) (b: table): compare_result = (...)
let res_box = compare (Box 1) (Box 2) in (* which is supposed to call the first funciton *)
let res_table = compare (Table 1) (Table 2) in (* which is supposed to call the second function *)
Vì vậy, bất cứ ai có thể cho tôi biết những gì là thay thế trong OCaml để làm điều này? Chúng ta có phải đặt tên cho 2 chức năng này một cách khác nhau không?
Xin lưu ý rằng lần khai báo thứ hai của 'so sánh' sẽ ẩn lần trước đó (không có quá tải hàm trong Ocaml). – akoprowski