减法无效-Clojure

减法无效-Clojure,clojure,subtraction,Clojure,Subtraction,我正在尝试制作一个非常简单的Nim游戏,它甚至可能不被认为是Nim的正确实现,但我只是开始编写Clojure。不知道为什么第四行的减法不起作用 1. (def nimBoard 10) 2. (println "There are" nimBoard "objects left") 3. (def in (read-line)) 4. (- nimBoard in) 我似乎无法想出一个可靠的算法来询问用户是否要从电路板上删除一个或两个“对象”,直到它变为空。我来自Jav

我正在尝试制作一个非常简单的Nim游戏,它甚至可能不被认为是Nim的正确实现,但我只是开始编写Clojure。不知道为什么第四行的减法不起作用

   1. (def nimBoard 10)
   2. (println "There are" nimBoard "objects left")
   3. (def in (read-line))
   4. (- nimBoard in)
我似乎无法想出一个可靠的算法来询问用户是否要从电路板上删除一个或两个“对象”,直到它变为空。我来自Java,但是这种语言中的循环让我很困惑。我知道我想做的并不完全是尼姆的游戏,但它是为了练习


如果有任何帮助,我将不胜感激:)

因为
中的
是从标准中读取的字符串,您需要先将
中的
转换为一个数字,然后再进行减法运算。试试这个:

(defn parse-int [s]
      (Integer. (re-find  #"\d+" s )))
(- nimBoard (parse-int in))

由于
中的
是从标准中读取的字符串,因此需要先将
中的
转换为减法之前的数字。试试这个:

(defn parse-int [s]
      (Integer. (re-find  #"\d+" s )))
(- nimBoard (parse-int in))

由于
中的
是从标准中读取的字符串,因此需要先将
中的
转换为减法之前的数字。试试这个:

(defn parse-int [s]
      (Integer. (re-find  #"\d+" s )))
(- nimBoard (parse-int in))

由于
中的
是从标准中读取的字符串,因此需要先将
中的
转换为减法之前的数字。试试这个:

(defn parse-int [s]
      (Integer. (re-find  #"\d+" s )))
(- nimBoard (parse-int in))

完全理解。当你在学习一门新语言时,有时一些小东西会从缝隙中溜走。我也在学Clojure。祝你学习顺利!完全理解。当你在学习一门新语言时,有时一些小东西会从缝隙中溜走。我也在学Clojure。祝你学习顺利!完全理解。当你在学习一门新语言时,有时一些小东西会从缝隙中溜走。我也在学Clojure。祝你学习顺利!完全理解。当你在学习一门新语言时,有时一些小东西会从缝隙中溜走。我也在学Clojure。祝你学习顺利!