2012-06-27 16 views
9

Tên biến trong Haskell cần phải được trong trường hợp nhỏ, nhưngLàm thế nào để đặt tên cho các biến Haskell mà trong vật lý được chữ hoa

Làm thế nào để khai báo các biến trong tập tin .hs, nếu chúng ta muốn lưu trữ g = 9,8 và G = 6.67300 × 10-11 (trong kịch bản sau)?

Thông thường nhà vật lý đề cập đến:

(1) Tăng tốc do trọng trường trái đất

g = 9,8 m/giây^2

(2) Phổ Hấp dẫn liên tục

G = 6.67300 × 10-11 m3 kg-1 s-2

+1

Bạn có thể thực hiện một số loại trình xử lý thực sự tách ra các hằng số của bạn, thậm chí có thể làm phép nhân cơ bản để physicsConsts "gG" là g * G. Thực hiện một DSL gọn gàng có thể chỉ là những gì bác sĩ đã ra lệnh. – Sarah

+1

@Sarah: DSL "toán học" sẽ thực sự tuyệt vời. Nó cũng sẽ được thực sự mát mẻ nếu bạn có thể đi từ một chuỗi công thức đến một chức năng: sau đó bạn có thể nhúng công thức có liên quan đúng nguyên văn - một ví dụ tốt về mã tự tài liệu. Tôi tự hỏi làm thế nào bạn có thể thực hiện một cái gì đó như thế trong một cách an toàn loại mặc dù. Có các đơn vị được thi hành bởi hệ thống kiểu sẽ là tuyệt vời; Tôi nhớ đọc về F # làm một cái gì đó như thế. –

+0

@TikhonJelvis: nói về overkill LOL –

Trả lời

12

Bạn sẽ phải đưa ra một cái tên khác. Sự khác biệt giữa các tên bắt đầu bằng chữ hoa và chữ thường là một phần của cú pháp.

Mặc dù điều này có thể không may trong trường hợp của bạn, đó là một sự cân bằng thiết kế. Để đơn giản hóa sự khác biệt giữa các thứ khác nhau (ví dụ: giữa các biến và hàm tạo), số nhận dạng bắt đầu bằng chữ cái thường và các chữ cái bắt đầu bằng chữ in hoa về cơ bản là khác nhau.

9

Bạn có thể cung cấp cho họ tên có ý nghĩa. Chỉ vì các nhà toán học và vật lý lịch sử thích sử dụng các biểu tượng không thể hiểu được mà không có cách giải thích chúng khác hơn là ghi nhớ thuộc lòng không có nghĩa là bạn phải làm như vậy. Chúng tôi đang gõ bây giờ, không viết dài tay, vì vậy việc xác định phương trình theo số earthGravitygravitationalConstant không quá khó viết hơn so với số gG, và nó dễ đọc hơn rất nhiều! Hoặc bạn có thể chỉ định rằng tất cả các số nhận dạng có tiền tố giống như c đại diện cho các hằng số tiêu chuẩn nổi tiếng và sử dụng cgcG.

+2

Tôi không biết: đọc một * công thức * với các tên một chữ cái nổi tiếng dễ hơn là đọc cùng một công thức với các tên biểu mẫu dài. Nó chỉ dễ dàng hơn để xem toàn bộ công thức trong nháy mắt với tên ngắn hơn so với các tên như 'earthGravity'. –

+1

@TikhonJelvis Đúng, tôi hơi hoang mang một chút.Cho rằng các tên ký hiệu đơn đã tồn tại và * là * nổi tiếng, các tên truyền thống dễ đọc hơn một chút. Nhưng nếu tất cả các mã được viết theo cách đó, nó sẽ không thể hiểu được. Bạn đã từng thấy một chương trình được viết trong APL chưa? Tuy nhiên, – Ben

2

Tôi chỉ cần sử dụng g_G. Tôi nghĩ rằng dấu gạch dưới không quá mất tập trung.

+7

Tuy nhiên, nó sẽ tương tác với cơ chế của GHC đối với các cảnh báo biến không sử dụng - các tên bắt đầu bằng dấu gạch dưới bị bỏ qua. –

+1

Gee, bạn nói đúng. Tôi đề nghị 'g' và' bigG'. –

+2

Ồ, tôi không biết điều này. – Landei

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