如何在Haskell中创建用于导航到另一个文件的菜单

时间:2014-11-16 18:54:58

标签: haskell haskell-platform

我有三个文件(Play.hsSudoku.hsNim.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 
              ...

2 个答案:

答案 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