十进制到二进制 Clojure

AMM*_*AMM 2 clojure

我正在按照这个伪代码将十进制递归转换为二进制。

findBinary(decimal)
   if (decimal == 0)
      binary = 0
   else
      binary = decimal % 2 + 10 * (findBinary(decimal / 2)
Run Code Online (Sandbox Code Playgroud)

这是我尝试过的:

(defn binary [n]
  (loop [res 0]
    (if (= n 0)
    res
    (recur (res (* (+ (mod n 2) 10) (binary (quot n 2)))) )
    )
  )
)
Run Code Online (Sandbox Code Playgroud)

但我收到此错误:

ClassCastException java.lang.Long cannot be cast to clojure.lang.IFn  user/binary (form-init9002795692676588773.clj:6)
Run Code Online (Sandbox Code Playgroud)

任何想法如何修复代码以完成任务?

cfr*_*ick 6

我意识到,这是关于旅程而不是结果。但是要提到的是:Long/toString可以为您提供一个带有各种基数的数字的字符串。

(Long/toString 123 2)
; ? "1111011"
Run Code Online (Sandbox Code Playgroud)