Câu trả lời:
Nhờ các bộ dữ liệu, bạn có thể xác định một số biến cùng một lúc. Và vì các chức năng là công dân hạng nhất
let f,g=(fun x->x+1),fun x->2*x
Tuy nhiên, bạn không thể viết:
let f,g=(fun x->x+1),fun x->2*f x
Lỗi: Giá trị không giới hạn f
Thật không may, bạn không thể tránh được vấn đề bằng cách sử dụng rec
:
let rec f,g=(fun x->x+1),fun x->2*f x
Lỗi: Chỉ các biến được phép ở phía bên trái của
let rec
Các chức năng trong OCaml được cà ri. Nó có thể hữu ích để khai thác thực tế đó đôi khi.
let n y=f x y
có thể được viết
let n=f x
Nếu bạn cần các phép toán số học, bạn có thể bao quanh chúng bằng dấu ngoặc đơn để chúng hoạt động giống như các hàm tiền tố tiêu chuẩn. (+)
, (-)
, ...
let n=(+)1;;
n 3;;
- : int = 4