2010-06-25 63 views
20

Mặc dù không có một kiểu đúng nào, một số điểm thỏa thuận chung tồn tại trong cộng đồng C# về tiêu chuẩn/kiểu mã hóa; thông thường, chúng là các biến thể của Hướng dẫn thiết kế .NET Framework.Kiểu mã hóa F # và tiêu chuẩn

Khi bạn nhìn vào F #, mặc dù, tiêu chuẩn này rõ ràng khác với những gì được coi là bình thường trong C#. Ví dụ, các hàm có thể truy cập trên List hoặc Seq (gần như) tất cả bắt đầu trong trường hợp thấp hơn: List.fold, List.map (nhưng List.Cons và List.Empty không ...), trong khi nó thường được chấp nhận phương pháp hoặc thuộc tính trong C# phải được viết hoa.

Vì vậy, câu hỏi của tôi là, có quy ước mã hóa được chấp nhận rộng rãi cho F # không? Có tương đương với Nguyên tắc thiết kế khung hay tiêu chuẩn mã hóa tốt không? Và, như một tiền thưởng, trong thế giới F # khoảng trắng, mọi người có chủ đề để tranh luận không ngừng về, tương tự như vị trí C# xoăn-cú đúp vượt thời gian không?

+2

List.Cons và List.Empty là các hàm tạo, không phải hàm. Đó là lý do tại sao họ bắt đầu với chữ in hoa. – sepp2k

+0

Tôi hiểu sự khác biệt; tuy nhiên, tôi muốn biết nếu loại quy ước được chấp nhận này được viết ở đâu đó. Trong C#, cả hai phương thức và các hàm tạo đều bắt đầu bằng một vốn. – Mathias

Trả lời

23

Nhóm F # đã soạn thảo một tài liệu có vẻ như chính xác những gì bạn đang yêu cầu. (Chúng tôi hiện đang trong quá trình kết hợp phản hồi từ cộng đồng/người trong cuộc mà chúng tôi đã gửi bản nháp.) Có khả năng sẽ được xuất bản trong tương lai gần. Tôi chắc chắn sẽ liên kết nó ở đây khi nó được xuất bản.

EDIT

The document is archived now và bạn nên consult the updated version để thay thế.

+0

Rất hay. Việc thiếu một tiêu chuẩn không phải là vấn đề lớn nhất của tôi bởi một căng dài, nhưng tôi thực sự thích sự nhất quán, và điều này sẽ giúp đỡ. Bất kỳ suy nghĩ về việc có một cái gì đó giống như StyleCop cho F #? – Mathias

+0

Tôi không đích thân có bất kỳ suy nghĩ nào, và tôi không biết ai có kế hoạch tạo ra một công cụ như vậy. (Bạn có thể tạo ra nó và trở nên quan trọng đối với cộng đồng F #! :)) – Brian

+1

Tôi nghĩ rằng hầu hết các quy ước mã hóa đều xuất phát từ nền OCaml. –

7

Cập nhật: Giấy của Don (được liên kết bên dưới) đã bị xóa khỏi trang web của Microsoft. Tuy nhiên, A comprehensive guide to F# Formatting Conventions dường như dựa trên cùng một giấy.

Don Syme's F# Coding Guidelines paper giải quyết các vấn đề về kiểu định dạng "dấu ngoặc nhọn" cho F #.

+2

Bài viết này dường như ngoại tuyến ngay bây giờ, nhưng có https://github.com/dungpa/fantomas/blob/master/ tài liệu/FormattingConventions.md mà rõ ràng là dựa trên nó. – Dave

+0

Cảm ơn bạn đã bình luận @Dave. Tôi đã cập nhật câu trả lời với đề xuất của bạn. – bentayloruk

Các vấn đề liên quan