2011-10-28 23 views
5

Tôi đặt một số chức năng vào một tập tin. Ở đâu trên PC của tôi, tôi có nên lưu tệp này để tôi có thể dễ dàng tải các chức năng của mình không?Tôi có thể lưu các mô-đun Haskell của mình ở đâu?

Tôi đang sử dụng Nền tảng Haskell trên máy tính Windows 64 bit.

+1

Trong đám mây ...

Trả lời

9

Tôi thường đặt các mô-đun của mình trong cùng một cây thư mục và khởi động ghci tại thư mục gốc của cây. Sau đó, các mô-đun có thể nhập lẫn nhau và tôi có thể dễ dàng mô hình :load thành ghci tương tác.

$ ghci 

.... loading .... 

Prelude> :load directory/subdirectory/mymodule.hs 
+0

My 'ghci' là trong 'C: \ Program Files (x86) \ Haskell Platform \ 2011.2.0.0 \ bin'. Tôi có đặt chúng vào đây không? – Dynamic

+0

Không! Khi nó được cài đặt, nó phải đặt chính nó vào đường dẫn hoặc biến môi trường, để bạn có thể chạy 'ghci' từ dòng lệnh, bất kể thư mục bạn đang ở. Nếu các biến môi trường không được thiết lập đúng, bạn có thể thay đổi chúng theo cách thủ công thông qua bảng điều khiển. –

+0

Chờ ... cái gì? Bạn có chức năng gì trên PC? – Dynamic

2

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

+0

+1 cho điều này. Cabal thực sự rất dễ sử dụng ngay bây giờ; cho trường hợp sử dụng này, nó hoàn toàn tự động ('cabal init' tạo ra một tệp' .cabal' cho bạn, và bạn chỉ cần điền vào các phụ thuộc xây dựng) –

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