Nếu bạn muốn module của bạn để có thể truy cập từ một vài dự án khác nhau, tôi khuyên bạn nên để tạo ra một gói cabal cho họ và cài đặt nó bằng cách sử cabal install
. Xuất bản để tấn công là không cần thiết - cabal install
không có đối số tìm kiếm .cabal
tệp trong thư mục hiện tại và cài đặt gói tương ứng.
Nếu bạn muốn các mô-đun của mình có thể truy cập được từ một dự án duy nhất - thực tiễn thông thường về tổ chức các nguồn của bạn trong cây thư mục phân cấp cũng áp dụng cho Haskell. Hãy để tôi chỉ cho một ví dụ:
Hello/World.hs
Foo/Bar.hs
Quux.hs
Hello.hs
Hello/World.hs
nên có module Hello.World where
trong tiêu đề. Mô-đun chính phải có module Main
, nhưng tên tệp thực tế có thể là bất kỳ thứ gì (ví dụ: Quux.hs
). Trong Foo/Bar.hs
bạn có thể sử dụng import Hello.World
. Khi bạn tải Foo/Bar.hs
trong ghci
, thư mục hiện tại phải là gốc của cây của bạn, nếu không nó sẽ không tìm thấy Hello.World. Bạn có thể chuyển tên mô-đun thay vì tên tệp thành ghci: ví dụ: ghci Hello.World sẽ hoạt động.
Sau đây là các tài liệu:
http://haskell.org/ghc/docs/latest/html/users_guide/separate-compilation.html
http://haskell.org/ghc/docs/latest/html/users_guide/packages.html
Trong đám mây ... một trò đùa xấu> –