簡體   English   中英

外部依賴關系,Haskell,堆棧:我是否應該修改某些東西或“導入”以備足夠?

[英]External dependencies, Haskell, stack: should I modify something or 'import' suppose to be sufficient?

對於Haskell以及堆棧我都是很新的。

import Data.Set
import Data.Stack

上面的語句觸發編譯錯誤: Could not find module 'Data.Set'. Perhaps you meant 'Data.Int' Could not find module 'Data.Set'. Perhaps you meant 'Data.Int' 我試圖谷歌搜索,沒有發現類似的東西。

因此,我的問題是:我是否需要手動指定外部依賴項,還是只是我的stack build命令為什么無法從某種程度的緩存或存儲庫中獲取適當的模塊?

如果我必須手動指定依賴項,我應該選擇.cabal還是.yaml 處理版本控制的正確方法是什么?

[我需要手動指定外部依賴項嗎?

是。

由於使用的是Stack,因此很容易指定要在代碼中導入的依賴包。 根據您的Stack版本,默認配置可能有所不同:

  1. 如果使用最新版本的Stack創建項目,則會在項目的根目錄中看到package.yaml (在這種情況下,使用hpack來指定配置)。 您需要在其中添加包依賴關系,例如Data.Set containers 這是我的一個項目中的依賴項部分的示例:

     dependencies: - base >= 4.7 && < 5 - containers - time - network - bytestring 
  2. 如果您使用的是較舊版本的stack ,但看不到package.yaml ,則需要編輯your-project-name.cabal以添加依賴項。 這是完整的文檔,告訴您如何執行此操作: https : //docs.haskellstack.org/en/stable/GUIDE/#adding-dependencies

就個人而言,我更喜歡帶有hpackpackage.yaml )的新系統。 基本上,它更簡單,並且可以節省您聲明所有模塊的時間(與依賴性無關)。 如果您有package.yaml ,請不要編輯.cabal ,它是hpack自動生成的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM