是否可以重命名當前模塊? 假設我想要介紹左側和右側的數據構造函數,但這些會與Prelude.Left和Right衝突。我不想在任何地方寫MyModule.Left和MyModule.Right,我寧願以某種方式將它重命名爲MyModule,並寫爲M.Left。可能嗎 ?有什麼選擇?重命名當前模塊
Q
重命名當前模塊
3
A
回答
1
import qualified YourModule as M
4
達里奧的回答給人做最簡單的方法,但既然你問的替代品,以及,你可能想看看the description of import
declarations在Haskell的報告,或瞭解您一個Haskell的the "Loading modules" section。
到本地別名一個常見的替代方法(即import qualified SomeModule as X
)只是用來掩飾的Prelude
函數(或構造函數),如果你知道你將不再需要他們:
import Prelude hiding (Left, Right)
import MyModule
您還可以導入的不同部分模塊中不同的方式:一種常見的伎倆是直接,但它的別名導入功能模塊的類型:
import Data.Map (Map)
import qualified Data.Map as M
import Data.Set (Set)
import qualified Data.Set as S
simpleMap :: Map String Int
simpleMap = M.singleton "one" 1
simpleSet :: Set String
simpleSet = S.singleton "one"
這使我們能夠同時使用singleton
功能,但我們也不必鍵入M.Map
和S.Set
在每個類型的簽名。
0
你只有一個模塊。在這種情況下,它只是隱藏數據構造(左,右)從前奏(這些被定義存在)非常簡單的解決方案:
Alternativly,你可以簡單地導入前奏合格。然後,你必須之前的任何前奏功能/材料/等粘一些信:
module MyModule where
import qualified Prelude as P
相關問題
- 1. PyCharm:「無模塊命名configobj」當在RemoteDebugServer
- 2. 重命名模塊後取下對象
- 3. Android Studio中重命名模塊
- 4. GWT:如何重命名我的模塊
- 5. 重命名已發佈的NPM模塊
- 6. eclipse + pydev如何重命名模塊?
- 7. 在IntelliJ IDEA中重命名模塊
- 8. 當映射到命名空間模塊時,將prop作爲模塊名稱
- 9. 無模塊命名flaskext.mysql
- 10. 無模塊命名blog.urls
- 11. 無模塊命名mftracker
- 12. 「無模塊命名balanced_django.middleware」
- 13. 隨機命名模塊
- 14. 無模塊命名backends.simple.urls
- 15. 無模塊命名changelist_ordering
- 16. 模塊命名在RequireJS
- 17. 無模塊命名bidi.algorithm
- 18. 命名空間模塊VB.Net
- 19. 沒有模塊命名psycopg2
- 20. 無模塊命名剖面
- 21. 無模塊命名_imagingft
- 22. 無模塊命名flask.ext.wtf.SelectField
- 23. 無模塊命名的extern
- 24. Haskell模塊命名約定
- 25. 無模塊命名filterspecs
- 26. 無模塊命名_pocketsphinx
- 27. 沒有模塊命名'Ocr'
- 28. Eclipse重構在當前項目之外進行重命名?
- 29. 將所有內容從ipython中的模塊導入當前命名空間
- 30. IPhone:當重命名程序
我自己的左和右是在MyModule的定義,我想那裏使用它們。 – hNewb 2010-07-31 17:26:36