Привет, ребята! Я запускаю игру Конвея о жизни, но, думаю, мне пришлось изменить исходную версию здесь: https://github.com/sebastianbenz/clojure-game-of-life для ссылки на field.clj
(а не run.clj
) в файле project.clj
. После этого я могу запустить игру, запустив
repl> (run-game)
Однако он падает на этом методе, у которого нет комментариев относительно входных аргументов.
Таким образом, мой вопрос: что эта форма (похоже, делает) с точки зрения синтаксиса Clojure?
(defn run-game
([engine seed]
(run-game engine seed
{:columns 50 :rows 50 :speed 500 :cellsize 10}))
([engine seed options]
(let [panel (field-panel engine seed options)
frame (field-frame panel)
timer (Timer. (options :speed) panel)]
(.start timer))))
ОБНОВЛЕНИЕ _
Почему «[engine-seed]» заключено в круглые скобки?
Почему эта функция рекурсивная?
какие-либо другие идеи на уровне синтаксиса о том, как эта функция разработана?