我有三个文件(Play.hs
,Sudoku.hs
和Nim.hs
),其中每个文件都有一个main
。
我想在main
中设置一个Play.hs
来运行其中一个游戏(Nim或Sudoku),如下所示:
main :: IO ()
main = do
putStrLn "1-Sudoku"
putStrLn "2-Nim"
putStrLn "choice----->"
let x=getLine
if x==1 then
....
else
...
答案 0 :(得分:4)
您可以从其他模块中调用main
值,只要将行module Nim where
添加到Nim.hs
的顶部,同样添加Sudoku.hs
。< / p>
当然,如果你的范围不止一个main
,那么就会有歧义;但你可以通过同样的方式处理main
的歧义,就像对其他名字一样。
import Sudoku
import Nim
main = do
...
if x == 1 then Sudoku.main else Nim.main
..如果您在翻译中,请使用Play.main
启动您的计划。
答案 1 :(得分:1)
您可以使用import qualified
解决歧义,只需从您需要的游戏中调用相应的main
。
确保您已使用
启动Sudoku.hs
module Sudoku where
和Nim.hs
相同;那么你可以做到
import qualified Sudoku as S
import qualified Nim as N
main =
-- ....
if x==1 then
S.main
else
N.main