Создание будущего Clojure без его запуска - PullRequest
4 голосов
/ 16 декабря 2011

У меня есть базовый скрипт Clojure, содержащий:

(def test
    (future
        (loop []
            (println "Running")
            (recur))))

Однако, если я исполняю файл с:

java -cp clojure-1.3.0.jar clojure.main test.clj

, то экран заполняется «Running».Как я могу изменить это так, чтобы будущее бежало, когда я этого хочу?

Примечание: я понимаю, что это будет продолжаться вечно, это всего лишь пример моей проблемы.

1 Ответ

10 голосов
/ 16 декабря 2011

Будущее, которое не запускается сразу, - это просто функция без аргументов.

Итак:

(defn test []
  (println "Running")
  (recur))

... Позже ...

(future (test))
...