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、これテールポジションです。なぜ/何が得られるのですか?

4

1 に答える 1

1

これは、Clojure 1.3 および 1.4 で動作します。問題を引き起こしている同じ名前空間に他の機能があるのではないでしょうか?

于 2012-05-09T21:59:59.800 に答える