2012-02-18 29 views
6

Các số :browse, :info:type Lệnh GHCi rất thuận tiện.Lấy nội dung mô-đun

Có thể nhận cùng một chương trình thông tin trong chương trình Haskell không? Tức là, để có được các chức năng được xuất từ ​​mô-đun, các loại nội dung, v.v.

+0

Bạn đã thử gì? –

+1

Eh, xin lỗi? Gì? Tôi đã nhìn xung quanh với Hoogle và Google và không tìm thấy gì cả. – Lii

+2

Bạn có thể sử dụng API GHC. Tôi không biết một cách đơn giản hơn. –

Trả lời

0

Daniel Fischer commented:

Bạn có thể sử dụng API GHC. Tôi không biết một cách đơn giản hơn.

Dường như khó sử dụng nhưng hoạt động tốt. Và tôi đoán đây là cách :info hoạt động trong GHCi. Cám ơn vì sự gợi ý.

5

:browse - khi một chương trình Haskell được biên dịch, không có thông tin hữu ích nào được giữ lại. không thể truy cập thông tin đó.

:type - Trừ khi bạn đang sử dụng Data.Typeable, các loại không hiển thị ở thời gian chạy. Các loại trong Haskell chủ yếu là cho trình biên dịch để kiểm tra tính chính xác/an toàn của mã.

:info - Xem ở trên.

+0

Điều đó có thể xảy ra để đọc thông tin tĩnh đó từ các tệp giao diện .hi. – Lii

+0

Hm, có thể chỉ: trình duyệt sẽ có ý nghĩa để thực hiện trên thông tin tĩnh trong tệp .hi. – Lii

+0

Lý do câu trả lời này không liên quan là tôi không quan tâm đến một chương trình điều khiển thông tin meta của chính nó, mà là một chương trình đọc thông tin của một mô-đun được lưu trữ trên đĩa. Thông tin này được lưu trữ trong các tệp '.hi' và có thể đọc được. – Lii

3

để nhận các chức năng của mô-đun tại thời điểm biên dịch - gói language-haskell-extract có thể thú vị với bạn. Nó giúp bạn trích xuất các hàm theo một cụm từ thông dụng.

http://hackage.haskell.org/package/language-haskell-extract-0.2.1

+0

Các chức năng trong gói đó sẽ trích xuất tên của các chức năng của mô-đun gọi. Đôi khi điều đó có thể hữu ích, nhưng nó không giải quyết được vấn đề của tôi. – Lii

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