2010-05-26 30 views
8

Khi mọi người đề cập đến "cú pháp sửa đổi" trong OCaml, chúng có nghĩa là điều này sẽ trở thành cú pháp mới cho ngôn ngữ hay chỉ là cú pháp thay thế được tạo trong CamlP4? Nếu đó là trước đây, thì khi nào "cú pháp sửa đổi" trở thành "cú pháp chính thức" của OCaml?"Cú pháp đã sửa đổi" trong OCaml là gì?

Trả lời

11

Cú pháp đã sửa đổi chỉ là alternative to the original được triển khai trong Camlp4/5 (cũng có một Lisp syntax được viết bằng Camlp5). Một số người thích nó, nhưng tôi sẽ ngăn cản bạn sử dụng nó vì nó chỉ có khả năng làm cho mã của bạn khó hiểu hơn đối với các lập trình viên OCaml khác. Một nơi có giá trị để biết cú pháp sửa đổi là khi bạn đang viết phần mở rộng Camlp4/5 --- cú pháp sửa đổi được sử dụng cho các mẫu và viết lại, có lẽ vì nó có phần phù hợp hơn so với bản gốc.

Theo như tôi biết, không có kế hoạch thay thế cú pháp OCaml gốc bằng cú pháp đã sửa đổi.

+2

"nhưng tôi sẽ không khuyến khích bạn sử dụng nó vì nó có khả năng làm cho mã của bạn trở nên khó hiểu hơn đối với các lập trình viên OCaml khác" - anh ta, vậy thì tốt hơn bạn nên sử dụng ocaml, vì nó sẽ gây nhầm lẫn cho nhiều người hơn :)). Dù sao, bạn có thể viết trích dẫn với cú pháp ban đầu, nhưng có một số trường hợp không thể được thể hiện trong cú pháp ban đầu, do đó, sửa đổi thường được ưa thích cho nhiệm vụ đó. Đối với lập trình thông thường - cú pháp sửa đổi được cho là hợp lý hơn và dễ dàng hơn cho người mới (đó là lý do tại sao nó tồn tại sau khi tất cả) - mà không có nhiều sự mơ hồ của bản gốc. – ygrek

+6

ygrek, tôi không đại diện cho cú pháp nào tốt hơn. Tôi nghĩ rằng một cộng đồng nhỏ và vừa như OCaml nên làm việc chăm chỉ để không phân mảnh xung quanh tiếng địa phương. –

+3

Một điểm khác so với cú pháp sửa đổi: hỗ trợ trình soạn thảo nghèo (er). Cả cơ sở OCAMl của Tuareg lẫn Vim đều không hỗ trợ kiến ​​thức của tôi. –

2

Đây chỉ là cú pháp cụ thể thay thế. Tôi nghĩ đó chỉ là để chứng minh camlP4 mạnh mẽ như thế nào, một loại bằng chứng về khái niệm.

+0

Nó không phải là một bằng chứng về khái niệm - nó bao gồm tất cả các tính năng của ngôn ngữ như một bản gốc. – ygrek

+0

đó chỉ là một bằng chứng về khái niệm mà bạn có thể có một số cú pháp cụ thể. Đó là những gì tôi có nghĩa là ... bởi vì tôi không nghĩ rằng nhiều người đang thực sự sử dụng cú pháp sửa đổi. – LB40