嗨,大家好!我正在运行康威的人生游戏——但我想我必须在这里修改原始版本: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]”嵌套在括号中?
为什么这个函数是递归的?
关于如何设计此功能的任何其他语法级别的见解?