2011-12-27 69 views
1

爲什麼在下列情況下不會讀取線塊?爲什麼不讀線塊?

以下是我在運行程序時發生的情況。我永遠不會輸入一個值。

Enter rover's moves LMMRM 
Enter rover's moves LMMRM 

(defn prompt-for-rover-moves 
    [] 
    (do 
     (println "Enter rover's moves LMMRM ") 
     (read-line) 
    )) 

(defn -main 
    [& args] 
    (do 
     (let [grid-dim-in [0 5] 
       mr1-pos  [\N 2 4] 
       mr2-pos  [\N 1 5] 
       mr1-movs (prompt-for-rover-moves) 
       mr2-movs (prompt-for-rover-moves)] 

      (reset! grid-dim grid-dim-in) 
      (reset! mr1-id {:mr1 mr1-pos}) 
      (reset! mr2-id {:mr2 mr2-pos}) 

      (.start (Thread. (rover-thread mr1-id mr1-movs))) 
      (.start (Thread. (rover-thread mr2-id mr2-movs)))))) 
+0

只是FYI,你不需要'do'形式,函數的主體是一個隱含的'do'。 – 2011-12-27 03:31:27

+0

我在repl中單獨嘗試了您的漫遊器移動功能,它適用於我。 – Bill 2011-12-27 03:46:01

+0

這是lein repl。這有什麼區別嗎? – octopusgrabbus 2011-12-27 16:02:10

回答

1

將它作爲一個獨立的Java應用程序運行,它應該工作正常。

我在REPL中運行過同樣的問題,從來沒有想出一個體面的解決方案。

+0

現在我的問題,我需要與leininngen人一起承擔lein jar沒有主要,所以我需要看看lein教程。 – octopusgrabbus 2011-12-27 18:49:52