Lời khuyên cho việc chơi golf ở OCaml


9

Lấy cảm hứng từ các loại 'Lời khuyên cho việc chơi golf bằng ngôn ngữ xyz' khác. Như thường lệ, vui lòng chỉ đề xuất các mẹo dành riêng cho OCaml và không lập trình nói chung. Một lời khuyên cho mỗi câu trả lời.


1
Nếu tôi thêm một vài lời khuyên rõ ràng?
Édouard

Câu trả lời:


3

Sử dụng các chức năng thay vì khớp

let rec f=function[]->0|_::t->1+f t

ngắn hơn

let rec f x=match x with[]->0|_::t->1+f t

2

Không bao giờ sử dụng bắt đầu [cuối]

Điều này:

begin […] end 

luôn đồng nghĩa với điều này:

([…])

1

Xác định một số biến hoặc hàm cùng một lúc

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


1

Khai thác các chức năng cà ri

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

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.