haskell中可以引用模塊嗎?我有幾個模塊,每個模塊都暴露相同的接口(兩個同名和簽名的函數)。是否有可能列出這些模塊,以便爲每個模塊調用函數。Haskell對模塊的引用
0
A
回答
3
如何爲界面定義數據類型?每個模塊提供數據類型的單個實例,然後您可以遍歷所有實例。
-- ModuleInterface.hs
-- Replace types of the functions with actual types
data ModuleInterface = ModuleInterface (Int -> Bool -> Int) (String -> Int)
-- ModuleA.hs
moduleInterface :: ModuleInterface
moduleInterface = ModuleInterface f1 f2
-- Declare f1 and f2
-- ModuleB.hs
moduleInterface :: ModuleInterface
moduleInterface = ModuleInterface f1 f2
-- Declare f1 and f2
-- Main.hs
-- Simple example showing how to "call" all of the functions. If you are doing
-- IO, then you would have to use something like mapM.
transform :: [ModuleInterface] -> Int -> Bool -> String -> [(Int, Int)]
transform interfaces i b s = map f interfaces
where f (ModuleInterface g h) = (g i b, h s)
0
我不確定你想要什麼,但名稱衝突通常只需使用合格的導入來解決。在下面的一個例子觀察S.
和M.
明確地說哪個模塊的功能或類型在不在。
import qualified Data.Set as S
import qualified Data.Map as M
mySet :: S.Set Int
mySet = S.fromList [1,2,3]
myMap :: M.Map String Int
myMap = M.fromList [("a", 1), ("b", 2), ("c", 3)]
main = do
print mySet
print myMap
print $ S.member 2 mySet
print $ M.lookup "c" myMap
但它從你的問題,你找一些元編程解決方案,那就是你有值似乎那就是模塊,比如說setModule, mapModule :: Module
,並且使用getter就像getFunctions :: Module -> [Functions]
。我確信這不存在,因爲它不適合靜態類型語言。然而,如果你嚴重誤用Template Haskell或宏,你可能會掀起一些東西。
相關問題
- 1. 導入Haskell模塊
- 2. Haskell引用自己的模塊中的值
- 3. 如何獲得對模塊的引用?
- 4. Haskell模塊命名約定
- 5. Haskell模式「找不到模塊」
- 6. AngularJS:未捕獲錯誤:[$ injector:nomod]模塊_不可用! |對模塊的多重引用
- 7. 有引用模板haskell函數嗎?
- 8. 模塊的名稱和路徑在Haskell
- 9. 如何在不引用c對象的情況下導入使用FFI的haskell模塊?
- 10. NodeJS引用導出模塊
- 11. 如何引用父級Javascript揭示模塊模式對象
- 12. 找不到模塊「System.Console.Readline」在Haskell
- 13. Haskell找不到模塊`系統'
- 14. haskell:跨沙箱共享模塊?
- 15. haskell加載模塊在列表中
- 16. Node.js的引用錯誤而傳遞對象的要求模塊
- 17. Joomla模塊Chrome模塊索引
- 18. Python模塊,引用同一包中的其他模塊?
- 19. CSS模塊 - 引用來自其他模塊的類
- 20. Python模塊(分配之前引用的模塊名)
- 21. Python:如何獲取模塊內部模塊的引用?
- 22. MongoDB的模塊來使用索引的
- 23. 在CAL中,如何獲取對模塊實例的引用?
- 24. 獲取對外部庫xml模塊的引用
- 25. 如何從該實現中獲取對模塊的引用?
- 26. PyCharm無法解析對PyQT5模塊的引用
- 27. Typescript模塊擴充 - 獲得對實例的引用
- 28. 分段錯誤:11 - 對模塊的交叉引用
- 29. 獲取對給定PowerShell模塊的所有引用
- 30. 使用導入模塊引用嵌套模塊
是的,TH是主意。謝謝。 – KAction 2012-07-21 10:34:45