2
(defn matrix-diagonals-odd-p
([matrix] (matrix-diagonals-odd-p matrix 0))
([matrix offset]
(let [len (alength matrix)]
(if (> (+ (bit-shift-right len 1) (bit-and len 1)) offset)
(if (= (+ (bit-and (get (get matrix offset) offset) 1)
(bit-and (get (get matrix (- len 1 offset)) (- len 1 offset)) 1)
(bit-and (get (get matrix offset) (- len 1 offset)) 1)
(bit-and (get (get matrix (- len 1 offset)) offset) 1)) 4)
(recur matrix (inc offset))
false) true))))
そして、私はjava.lang.UnsupportedOperationException: Can only recur from tail position
を取得していますが中にコンパイルされません。しかし、このは末尾位置です。なぜ/何が与えられますか?再発は完全に末尾再帰関数
これは私にとっては大丈夫です。これは実際にあなたがテストしていることを再度確認できますか?エラーは実際に長さにありますか? –
さて、Clojureを開発する最良の方法は、Javaをコンパイルして実行するのではなく、対話的にREPLを使用することです。あなたが誤って古いバージョンを実行していたと思われます。 –