为什么clojure会返回1N而不是1?

beo*_*ver 2 math clojure return-value

;; ------------------------- DICE COEFFS ------------------------

(defn dice-set-coeff [a b]
  (* (/ (count (clojure.set/intersection a b))
        (+ (count a) (count b)))
     2))

(defn dice-lst-coeff [a b]
  (dice-set-coeff (set a) (set b)))

;; ------------------------- BIGRAMS ----------------------------

(defn now-nxt [xs]
  "im sure there is a better way to write this"
  (map #(list %1 %2) xs (rest xs)))

(defn bigram [xs]
  (list now-nxt xs))

(defn dice-string-bigram [a b]
  (dice-lst-coeff (bigram a) (bigram b)))
Run Code Online (Sandbox Code Playgroud)

为什么我在结果中获得1N?

tst.core> (dice-string-bigram "hello" "hello")
1N
tst.core> (dice-string-bigram "hello" "helap")
1/2
tst.core> (dice-string-bigram "hello" "howdy")
0
tst.core> (== (dice-string-bigram "hello" "hello") 1)
true
Run Code Online (Sandbox Code Playgroud)

Art*_*ldt 5

1N是读者和REPL用于BigInts的语法.

其中一个电话正在返回一个bigint.


re:"我确定有更好的方法来写这个"

user> (now-nxt a)
((\h \e) (\e \l) (\l \l) (\l \o))
user> (partition 2 1 a)
((\h \e) (\e \l) (\l \l) (\l \o))
Run Code Online (Sandbox Code Playgroud)