2014-11-13 14 views
7

Tôi là người mới bắt đầu sử dụng haskell và gần đây tôi đã đọc về phân tích độ nghiêm ngặt trên the haskell wiki. GHC user's guide đọc:Làm thế nào để biết được mức độ nghiêm ngặt của GHC?

Máy phân tích tính nghiêm minh sẽ tính ra thời đối số và các biến trong một hàm có thể được điều trị 'đúng' (có nghĩa là họ luôn được đánh giá trong các chức năng tại một số điểm).

Tôi cũng đã đọc về thời điểm nghiêm ngặt có thể suy ra, nói chung. Tuy nhiên, như một người mới bắt đầu, tôi không phải lúc nào cũng chắc chắn nếu ghc thực sự xử lý đoạn mã của tôi, mà tôi dự định phải nghiêm ngặt, như là nghiêm ngặt.

Hiện tại, tôi không có cách nào khác để tìm hiểu xem liệu phân tích nghiêm ngặt có đang diễn ra hơn là cho chương trình có dữ liệu lớn hay không.

Có cách nào để hỏi ghc nếu có thể phỏng đoán mã nhất định phải nghiêm ngặt không?

+0

Nếu bạn có ví dụ về biểu thức bạn quan tâm, hãy đăng nó và chúng tôi có thể chỉ cho bạn cách khắc phục nó. – ErikR

+0

@ user5402 Cảm ơn bạn vì lòng tốt. Vấn đề ở đây không phải là về bất kỳ mã cụ thể nào, nhưng tôi sẽ đăng câu hỏi ở đây khi tôi bắt đầu một câu hỏi. Thật tuyệt khi biết một người nào đó đã lấy lại của tôi và nơi để tìm kiếm sự giúp đỡ :) – Yosh

Trả lời

8

Cách duy nhất tôi đã nhìn thấy thực sự xác minh rằng GHC đã suy ra mức độ nghiêm ngặt là đọc một biểu diễn trung gian của chương trình được biên dịch có tên là Core.

Một số nguồn lực vào việc học để đọc ra cốt lõi:

Tuy nhiên, cách tiếp cận khác là chỉ cần nói với GHC mà biểu thức nên được đánh giá nghiêm ngặt, ví dụ, bằng cách sử dụng tiện ích mở rộng ngôn ngữ BangPatterns hoặc chức năng seq.

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