2013-06-23 29 views
8

Liệu có thể sử dụng tương đương "nhập đủ điều kiện" trong GHCI với mô-đun OWN của chúng tôi không? Một cái gì đó như :m + qualified Data.List mà tất nhiên không hoạt động.nhập đủ điều kiện trong GHCI

Cảm ơn.

Trả lời

22

Chỉ cần nhập import qualified Data.Text hoặc import qualified Data.Text as T bên trong ghci, giống như bạn thực hiện bên trong mã của mình.

+5

Lưu ý rằng điều này đã được thêm vào GHC 7.0. – shachaf

+0

Rất tiếc, tôi có nghĩa là mô-đun OWN của tôi. – vildric

+2

@vildric Điều gì khiến bạn nghĩ rằng mô-đun của riêng bạn khác với mô-đun của người khác? Chỉ cần 'nhập khẩu My.Own.Modules đủ điều kiện như MOM', giả sử một gói có mô-đun' My.Own.Module' được cài đặt hoặc mô-đun nằm trong phạm vi thông qua các phương tiện khác. –

15

Tôi không biết một cách khá để làm những gì bạn muốn, nhưng bạn có thể giả mạo nó với một cái gì đó như thế này:

  1. Thứ nhất, sử dụng :load My/Module.hs để nạp mô-đun của bạn.
  2. Sử dụng :module - My.Module để loại bỏ phạm vi.
  3. (Tùy chọn.) Sử dụng import qualified My.Module as MM để đưa nó vào phạm vi đủ điều kiện.

Mọi mô-đun mà GHCi biết sẽ tự động có đủ điều kiện, vì vậy sau bước 2, My.Module.value sẽ hoạt động tốt. Bước 3 chỉ cần thiết nếu bạn muốn sử dụng tiền tố ngắn hơn.

Nếu bạn muốn tải nhiều tệp cùng một lúc, :load cũng có thể thực hiện điều đó;

:load My/Module1.hs My/Module2.hs ... My/ModuleN.hs 

sẽ hoạt động tốt. Nó sẽ đưa bạn vào phạm vi *My.Module1, và sau đó My.Module2My.ModuleN tất cả sẽ có sẵn đủ điều kiện như đã đề cập ở trên.

Để biết thêm về GHCi, bạn luôn có thể kiểm tra the GHC User's Guide, Ch. 2: "Using GHCi"; các phần đặc biệt có liên quan là §2.2, "Loading source files"§2.4.5, "What's really in scope at the prompt?".

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