2014-11-16 24 views
0

導航到另一個文件的菜單我有三個文件(Play.hsSudoku.hsNim.hs),並且這些文件的每一個都有一個main如何創建於哈斯克爾

我想打一個mainPlay.hs運行的那些遊戲(無論是稔或數獨)之一,就像這樣:

main :: IO() 
main = do 
      putStrLn "1-Sudoku" 
      putStrLn "2-Nim" 
      putStrLn "choice----->" 
      let x=getLine 
      if x==1 then 
       .... 
      else 
       ... 
+0

這是基本的Haskell IO一個很好的教程:簡單的輸入和輸出 - 哈斯克爾維基(http://en.wikibooks.org/wiki/Haskell/Simple_input_and_output) – ErikR

回答

4

你可以打電話從其他模塊main值就好了,只要將行module Nim where添加到Nim.hs的頂部,並且類似地對於Sudoku.hs

當然,如果您在範圍內有多個main,則會有不明確的地方;但您可以按照與main相同的方式處理歧義,就像您對其他名稱進行排位一樣。

import Sudoku 
import Nim 

main = do 
    ... 
    if x == 1 then Sudoku.main else Nim.main 

..如果您在翻譯,請用Play.main開始您的程序。

+0

我沒有」 t與模塊概念 –

+0

工作我不知道,我現在能做什麼! –

+1

@SamiLi我很樂意幫助你,但我還不明白這個問題。你能擴展一下嗎? –

1

您可以使用import qualified解決歧義問題,只需從您需要的遊戲中調用各自的main即可。

確保你與

module Sudoku where 

與同爲Nim.hs開始Sudoku.hs;那麼你可以做

import qualified Sudoku as S 
import qualified Nim as N 

main = 
    -- .... 
    if x==1 then 
     S.main 
    else 
     N.main