Clojureでテキストゲームを書いています。プレーヤーがコンソールで行を入力し、ゲームが行ごとに応答するようにします。
調査によると(read-line)、これは Clojure の標準入力からテキスト行を取得するための方法ですが、私にとってはうまくいきません。
私は新鮮な Leiningen プロジェクトに参加しており、唯一のソース ファイルを指す:main句を追加しました。project.clj
(ns textgame.core)
(defn -main [& args]
(println "Entering -main")
; (flush) ;makes no difference if flush are commented out
(let [input (read-line)]
(println "ECHO:" input))
; (flush)
(println "Exiting -main"))
lein run利回りの使用:
Entering -main
ECHO: nil
Exiting -main
つまり、コンソールにテキストを入力し(read-line)て読む機会がありません。
文字と改行が入力されるのをClojureに待機させ、対応する文字列を返すにはどうすればよいですか?
(Linux Mint 11 で GNOME Terminal 2.32.1、Java 1.6.0_26 Java HotSpot(TM) 64-Bit Server VM、Clojure バージョン 1.2.1 で Leiningen 1.6.1.1 を使用しています。)
更新: を実行するlein replと できますが、関数があり、 を使用して実行する(println (read-line))場合はできません。-mainlein run