2011-12-27 67 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